From: softworkz <softwo...@hotmail.com>

Instead of initializing a new BPrint in each iteration of
the loop, re-use the same BPrint struct and just clear it
for each iteration.

Signed-off-by: softworkz <softwo...@hotmail.com>
---
 fftools/textformat/avtextformat.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/fftools/textformat/avtextformat.c 
b/fftools/textformat/avtextformat.c
index 1939a1f739..0a221f4a9a 100644
--- a/fftools/textformat/avtextformat.c
+++ b/fftools/textformat/avtextformat.c
@@ -308,24 +308,25 @@ void avtext_print_integer(AVTextFormatContext *tctx, 
const char *key, int64_t va
 
 static inline int validate_string(AVTextFormatContext *tctx, char **dstp, 
const char *src)
 {
-    const uint8_t *p, *endp;
+    const uint8_t *p, *endp, *srcp = (const uint8_t *)src;
     AVBPrint dstbuf;
+    AVBPrint bp;
     int invalid_chars_nb = 0, ret = 0;
 
+    *dstp = NULL;
     av_bprint_init(&dstbuf, 0, AV_BPRINT_SIZE_UNLIMITED);
+    av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
 
-    endp = src + strlen(src);
-    for (p = src; *p;) {
-        uint32_t code;
+    endp = srcp + strlen(src);
+    for (p = srcp; *p;) {
+        int32_t code;
         int invalid = 0;
         const uint8_t *p0 = p;
 
         if (av_utf8_decode(&code, &p, endp, 
tctx->string_validation_utf8_flags) < 0) {
-            AVBPrint bp;
-            av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC);
-            bprint_bytes(&bp, p0, p-p0);
-            av_log(tctx, AV_LOG_DEBUG,
-                   "Invalid UTF-8 sequence %s found in string '%s'\n", bp.str, 
src);
+            av_bprint_clear(&bp);
+            bprint_bytes(&bp, p0, p - p0);
+            av_log(tctx, AV_LOG_DEBUG, "Invalid UTF-8 sequence %s found in 
string '%s'\n", bp.str, src);
             invalid = 1;
         }
 
@@ -345,7 +346,7 @@ static inline int validate_string(AVTextFormatContext 
*tctx, char **dstp, const
         }
 
         if (!invalid || tctx->string_validation == 
AV_TEXTFORMAT_STRING_VALIDATION_IGNORE)
-            av_bprint_append_data(&dstbuf, p0, p-p0);
+            av_bprint_append_data(&dstbuf, (const char *)p0, p - p0);
     }
 
     if (invalid_chars_nb && tctx->string_validation == 
AV_TEXTFORMAT_STRING_VALIDATION_REPLACE)
@@ -355,6 +356,7 @@ static inline int validate_string(AVTextFormatContext 
*tctx, char **dstp, const
 
 end:
     av_bprint_finalize(&dstbuf, dstp);
+    av_bprint_finalize(&bp, NULL);
     return ret;
 }
 
-- 
ffmpeg-codebot

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to