Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes
@ 2025-06-11 20:42 Marvin Scholz
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop free Marvin Scholz
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Marvin Scholz @ 2025-06-11 20:42 UTC (permalink / raw)
  To: ffmpeg-devel

---
 fftools/textformat/avtextformat.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
index 14779e6f0c..f1811abb1c 100644
--- a/fftools/textformat/avtextformat.c
+++ b/fftools/textformat/avtextformat.c
@@ -101,7 +101,6 @@ static void bprint_bytes(AVBPrint *bp, const uint8_t *ubuf, size_t ubuf_size)
 int avtext_context_close(AVTextFormatContext **ptctx)
 {
     AVTextFormatContext *tctx = *ptctx;
-    int i;
     int ret = 0;
 
     if (!tctx)
@@ -117,7 +116,7 @@ int avtext_context_close(AVTextFormatContext **ptctx)
         if (tctx->formatter->priv_class)
             av_opt_free(tctx->priv);
     }
-    for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
+    for (int i = 0; i < SECTION_MAX_NB_LEVELS; i++)
         av_bprint_finalize(&tctx->section_pbuf[i], NULL);
     av_freep(&tctx->priv);
     av_opt_free(tctx);
@@ -130,7 +129,7 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form
                         const AVTextFormatSection *sections, int nb_sections, AVTextFormatOptions options, char *show_data_hash)
 {
     AVTextFormatContext *tctx;
-    int i, ret = 0;
+    int ret = 0;
 
     av_assert0(ptctx && formatter);
 
@@ -202,7 +201,7 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form
             if (ret == AVERROR(EINVAL)) {
                 const char *n;
                 av_log(NULL, AV_LOG_ERROR, "Unknown hash algorithm '%s'\nKnown algorithms:", show_data_hash);
-                for (i = 0; (n = av_hash_names(i)); i++)
+                for (unsigned i = 0; (n = av_hash_names(i)); i++)
                     av_log(NULL, AV_LOG_ERROR, " %s", n);
                 av_log(NULL, AV_LOG_ERROR, "\n");
             }
@@ -525,13 +524,13 @@ void avtext_print_data(AVTextFormatContext *tctx, const char *key,
 {
     AVBPrint bp;
     unsigned offset = 0;
-    int l, i;
+    int i;
 
     av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
     av_bprintf(&bp, "\n");
     while (size) {
         av_bprintf(&bp, "%08x: ", offset);
-        l = FFMIN(size, 16);
+        int l = FFMIN(size, 16);
         for (i = 0; i < l; i++) {
             av_bprintf(&bp, "%02x", data[i]);
             if (i & 1)
@@ -571,7 +570,6 @@ void avtext_print_integers(AVTextFormatContext *tctx, const char *key,
 {
     AVBPrint bp;
     unsigned offset = 0;
-    int l, i;
 
     if (!key || !data || !format || columns <= 0 || bytes <= 0)
         return;
@@ -580,8 +578,7 @@ void avtext_print_integers(AVTextFormatContext *tctx, const char *key,
     av_bprintf(&bp, "\n");
     while (size) {
         av_bprintf(&bp, "%08x: ", offset);
-        l = FFMIN(size, columns);
-        for (i = 0; i < l; i++) {
+        for (int i = 0, l = FFMIN(size, columns); i < l; i++) {
             if      (bytes == 1) av_bprintf(&bp, format, *data);
             else if (bytes == 2) av_bprintf(&bp, format, AV_RN16(data));
             else if (bytes == 4) av_bprintf(&bp, format, AV_RN32(data));
-- 
2.39.5 (Apple Git-154)

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop free
  2025-06-11 20:42 [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes Marvin Scholz
@ 2025-06-11 20:42 ` Marvin Scholz
  2025-06-12  2:28   ` softworkz .
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 3/4] fftools/textformat: do not return early Marvin Scholz
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 13+ messages in thread
From: Marvin Scholz @ 2025-06-11 20:42 UTC (permalink / raw)
  To: ffmpeg-devel

The tctx->hash was freed already right before.
---
 fftools/textformat/avtextformat.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
index f1811abb1c..fa5abce261 100644
--- a/fftools/textformat/avtextformat.c
+++ b/fftools/textformat/avtextformat.c
@@ -108,8 +108,6 @@ int avtext_context_close(AVTextFormatContext **ptctx)
 
     av_hash_freep(&tctx->hash);
 
-    av_hash_freep(&tctx->hash);
-
     if (tctx->formatter) {
         if (tctx->formatter->uninit)
             ret = tctx->formatter->uninit(tctx);
-- 
2.39.5 (Apple Git-154)

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [FFmpeg-devel] [PATCH 3/4] fftools/textformat: do not return early
  2025-06-11 20:42 [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes Marvin Scholz
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop free Marvin Scholz
@ 2025-06-11 20:42 ` Marvin Scholz
  2025-06-12  2:31   ` softworkz .
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 4/4] fftools/textformat: remove useless error check Marvin Scholz
  2025-06-12  2:26 ` [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes softworkz .
  3 siblings, 1 reply; 13+ messages in thread
From: Marvin Scholz @ 2025-06-11 20:42 UTC (permalink / raw)
  To: ffmpeg-devel

This would make the goto dead code and also would not properly
call avtext_context_close.

Fix CID 1646939
---
 fftools/textformat/avtextformat.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
index fa5abce261..e1aaa9ba57 100644
--- a/fftools/textformat/avtextformat.c
+++ b/fftools/textformat/avtextformat.c
@@ -222,7 +222,6 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form
                 av_log(tctx, AV_LOG_ERROR,
                        "Invalid UTF8 sequence %s found in string validation replace '%s'\n",
                        bp.str, tctx->string_validation_replacement);
-                return ret;
                 goto fail;
             }
         }
-- 
2.39.5 (Apple Git-154)

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [FFmpeg-devel] [PATCH 4/4] fftools/textformat: remove useless error check
  2025-06-11 20:42 [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes Marvin Scholz
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop free Marvin Scholz
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 3/4] fftools/textformat: do not return early Marvin Scholz
@ 2025-06-11 20:42 ` Marvin Scholz
  2025-06-11 20:53   ` Andreas Rheinhardt
  2025-06-12  2:26 ` [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes softworkz .
  3 siblings, 1 reply; 13+ messages in thread
From: Marvin Scholz @ 2025-06-11 20:42 UTC (permalink / raw)
  To: ffmpeg-devel

This can never be reached as the errors are already handled
locally when they occur in the code preceding this.
---
 fftools/textformat/avtextformat.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
index e1aaa9ba57..6a309f040b 100644
--- a/fftools/textformat/avtextformat.c
+++ b/fftools/textformat/avtextformat.c
@@ -229,8 +229,6 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form
 
     if (tctx->formatter->init)
         ret = tctx->formatter->init(tctx);
-    if (ret < 0)
-        goto fail;
 
     *ptctx = tctx;
 
-- 
2.39.5 (Apple Git-154)

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 4/4] fftools/textformat: remove useless error check
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 4/4] fftools/textformat: remove useless error check Marvin Scholz
@ 2025-06-11 20:53   ` Andreas Rheinhardt
  2025-06-11 21:05     ` Marvin Scholz
  0 siblings, 1 reply; 13+ messages in thread
From: Andreas Rheinhardt @ 2025-06-11 20:53 UTC (permalink / raw)
  To: ffmpeg-devel

Marvin Scholz:
> This can never be reached as the errors are already handled
> locally when they occur in the code preceding this.
> ---
>  fftools/textformat/avtextformat.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
> index e1aaa9ba57..6a309f040b 100644
> --- a/fftools/textformat/avtextformat.c
> +++ b/fftools/textformat/avtextformat.c
> @@ -229,8 +229,6 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form
>  
>      if (tctx->formatter->init)
>          ret = tctx->formatter->init(tctx);
> -    if (ret < 0)
> -        goto fail;
>  
>      *ptctx = tctx;
>  

And when init fails?

- Andreas

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 4/4] fftools/textformat: remove useless error check
  2025-06-11 20:53   ` Andreas Rheinhardt
@ 2025-06-11 21:05     ` Marvin Scholz
  0 siblings, 0 replies; 13+ messages in thread
From: Marvin Scholz @ 2025-06-11 21:05 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



On 11 Jun 2025, at 22:53, Andreas Rheinhardt wrote:

> Marvin Scholz:
>> This can never be reached as the errors are already handled
>> locally when they occur in the code preceding this.
>> ---
>>  fftools/textformat/avtextformat.c | 2 --
>>  1 file changed, 2 deletions(-)
>>
>> diff --git a/fftools/textformat/avtextformat.c b/fftools/textformat/avtextformat.c
>> index e1aaa9ba57..6a309f040b 100644
>> --- a/fftools/textformat/avtextformat.c
>> +++ b/fftools/textformat/avtextformat.c
>> @@ -229,8 +229,6 @@ int avtext_context_open(AVTextFormatContext **ptctx, const AVTextFormatter *form
>>
>>      if (tctx->formatter->init)
>>          ret = tctx->formatter->init(tctx);
>> -    if (ret < 0)
>> -        goto fail;
>>
>>      *ptctx = tctx;
>>
>
> And when init fails?

Doh indeed, I overlooked the assignment in the previous line.

Disregard this patch.

>
> - Andreas
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes
  2025-06-11 20:42 [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes Marvin Scholz
                   ` (2 preceding siblings ...)
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 4/4] fftools/textformat: remove useless error check Marvin Scholz
@ 2025-06-12  2:26 ` softworkz .
  2025-06-12 11:25   ` Marvin Scholz
  3 siblings, 1 reply; 13+ messages in thread
From: softworkz . @ 2025-06-12  2:26 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Hi Marvin,

> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Marvin Scholz
> Sent: Mittwoch, 11. Juni 2025 22:42
> To: ffmpeg-devel@ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
> variable scopes
> 
> ---
>  fftools/textformat/avtextformat.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/fftools/textformat/avtextformat.c
> b/fftools/textformat/avtextformat.c
> index 14779e6f0c..f1811abb1c 100644
> --- a/fftools/textformat/avtextformat.c
> +++ b/fftools/textformat/avtextformat.c
> @@ -101,7 +101,6 @@ static void bprint_bytes(AVBPrint *bp, const
> uint8_t *ubuf, size_t ubuf_size)
>  int avtext_context_close(AVTextFormatContext **ptctx)
>  {
>      AVTextFormatContext *tctx = *ptctx;
> -    int i;
>      int ret = 0;
> 
>      if (!tctx)
> @@ -117,7 +116,7 @@ int avtext_context_close(AVTextFormatContext
> **ptctx)
>          if (tctx->formatter->priv_class)
>              av_opt_free(tctx->priv);
>      }
> -    for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
> +    for (int i = 0; i < SECTION_MAX_NB_LEVELS; i++)
>          av_bprint_finalize(&tctx->section_pbuf[i], NULL);
>      av_freep(&tctx->priv);
>      av_opt_free(tctx);
> @@ -130,7 +129,7 @@ int avtext_context_open(AVTextFormatContext
> **ptctx, const AVTextFormatter *form
>                          const AVTextFormatSection *sections, int
> nb_sections, AVTextFormatOptions options, char *show_data_hash)
>  {
>      AVTextFormatContext *tctx;
> -    int i, ret = 0;
> +    int ret = 0;
> 
>      av_assert0(ptctx && formatter);
> 
> @@ -202,7 +201,7 @@ int avtext_context_open(AVTextFormatContext
> **ptctx, const AVTextFormatter *form
>              if (ret == AVERROR(EINVAL)) {
>                  const char *n;
>                  av_log(NULL, AV_LOG_ERROR, "Unknown hash algorithm
> '%s'\nKnown algorithms:", show_data_hash);
> -                for (i = 0; (n = av_hash_names(i)); i++)
> +                for (unsigned i = 0; (n = av_hash_names(i)); i++)
>                      av_log(NULL, AV_LOG_ERROR, " %s", n);
>                  av_log(NULL, AV_LOG_ERROR, "\n");
>              }
> @@ -525,13 +524,13 @@ void avtext_print_data(AVTextFormatContext
> *tctx, const char *key,
>  {
>      AVBPrint bp;
>      unsigned offset = 0;
> -    int l, i;
> +    int i;
> 
>      av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
>      av_bprintf(&bp, "\n");
>      while (size) {
>          av_bprintf(&bp, "%08x: ", offset);
> -        l = FFMIN(size, 16);
> +        int l = FFMIN(size, 16);
>          for (i = 0; i < l; i++) {
>              av_bprintf(&bp, "%02x", data[i]);
>              if (i & 1)
> @@ -571,7 +570,6 @@ void avtext_print_integers(AVTextFormatContext
> *tctx, const char *key,
>  {
>      AVBPrint bp;
>      unsigned offset = 0;
> -    int l, i;
> 
>      if (!key || !data || !format || columns <= 0 || bytes <= 0)
>          return;
> @@ -580,8 +578,7 @@ void avtext_print_integers(AVTextFormatContext
> *tctx, const char *key,
>      av_bprintf(&bp, "\n");
>      while (size) {
>          av_bprintf(&bp, "%08x: ", offset);
> -        l = FFMIN(size, columns);
> -        for (i = 0; i < l; i++) {
> +        for (int i = 0, l = FFMIN(size, columns); i < l; i++) {

You are changing behavior here because size is changed inside the loop.
The pre-evaluation into l is intentional.

The remaining change should be ok.

Thanks
sw

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop free
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop free Marvin Scholz
@ 2025-06-12  2:28   ` softworkz .
  0 siblings, 0 replies; 13+ messages in thread
From: softworkz . @ 2025-06-12  2:28 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Marvin Scholz
> Sent: Mittwoch, 11. Juni 2025 22:42
> To: ffmpeg-devel@ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop
> free
> 
> The tctx->hash was freed already right before.
> ---
>  fftools/textformat/avtextformat.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/fftools/textformat/avtextformat.c
> b/fftools/textformat/avtextformat.c
> index f1811abb1c..fa5abce261 100644
> --- a/fftools/textformat/avtextformat.c
> +++ b/fftools/textformat/avtextformat.c
> @@ -108,8 +108,6 @@ int avtext_context_close(AVTextFormatContext
> **ptctx)
> 
>      av_hash_freep(&tctx->hash);
> 
> -    av_hash_freep(&tctx->hash);
> -
>      if (tctx->formatter) {
>          if (tctx->formatter->uninit)
>              ret = tctx->formatter->uninit(tctx);
> --
> 2.39.5 (Apple Git-154)
> 
> _______________________________________________

LGTM - I feel like I have fixed it 3 times already, but it always seemed to 
have slipped through.

Thanks a lot,
sw

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 3/4] fftools/textformat: do not return early
  2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 3/4] fftools/textformat: do not return early Marvin Scholz
@ 2025-06-12  2:31   ` softworkz .
  0 siblings, 0 replies; 13+ messages in thread
From: softworkz . @ 2025-06-12  2:31 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Marvin Scholz
> Sent: Mittwoch, 11. Juni 2025 22:42
> To: ffmpeg-devel@ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH 3/4] fftools/textformat: do not
> return early
> 
> This would make the goto dead code and also would not properly
> call avtext_context_close.
> 
> Fix CID 1646939
> ---
>  fftools/textformat/avtextformat.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/fftools/textformat/avtextformat.c
> b/fftools/textformat/avtextformat.c
> index fa5abce261..e1aaa9ba57 100644
> --- a/fftools/textformat/avtextformat.c
> +++ b/fftools/textformat/avtextformat.c
> @@ -222,7 +222,6 @@ int avtext_context_open(AVTextFormatContext
> **ptctx, const AVTextFormatter *form
>                  av_log(tctx, AV_LOG_ERROR,
>                         "Invalid UTF8 sequence %s found in string
> validation replace '%s'\n",
>                         bp.str, tctx-
> >string_validation_replacement);
> -                return ret;
>                  goto fail;
>              }
>          }
> --
> 2.39.5 (Apple Git-154)
> 
> _______________________________________________

LGTM, thank you!

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes
  2025-06-12  2:26 ` [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes softworkz .
@ 2025-06-12 11:25   ` Marvin Scholz
  2025-06-12 16:10     ` softworkz .
  0 siblings, 1 reply; 13+ messages in thread
From: Marvin Scholz @ 2025-06-12 11:25 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



On 12 Jun 2025, at 4:26, softworkz . wrote:

> Hi Marvin,
>
>> -----Original Message-----
>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
>> Marvin Scholz
>> Sent: Mittwoch, 11. Juni 2025 22:42
>> To: ffmpeg-devel@ffmpeg.org
>> Subject: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
>> variable scopes
>>
>> ---
>>  fftools/textformat/avtextformat.c | 15 ++++++---------
>>  1 file changed, 6 insertions(+), 9 deletions(-)
>>
>> diff --git a/fftools/textformat/avtextformat.c
>> b/fftools/textformat/avtextformat.c
>> index 14779e6f0c..f1811abb1c 100644
>> --- a/fftools/textformat/avtextformat.c
>> +++ b/fftools/textformat/avtextformat.c
>> @@ -101,7 +101,6 @@ static void bprint_bytes(AVBPrint *bp, const
>> uint8_t *ubuf, size_t ubuf_size)
>>  int avtext_context_close(AVTextFormatContext **ptctx)
>>  {
>>      AVTextFormatContext *tctx = *ptctx;
>> -    int i;
>>      int ret = 0;
>>
>>      if (!tctx)
>> @@ -117,7 +116,7 @@ int avtext_context_close(AVTextFormatContext
>> **ptctx)
>>          if (tctx->formatter->priv_class)
>>              av_opt_free(tctx->priv);
>>      }
>> -    for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
>> +    for (int i = 0; i < SECTION_MAX_NB_LEVELS; i++)
>>          av_bprint_finalize(&tctx->section_pbuf[i], NULL);
>>      av_freep(&tctx->priv);
>>      av_opt_free(tctx);
>> @@ -130,7 +129,7 @@ int avtext_context_open(AVTextFormatContext
>> **ptctx, const AVTextFormatter *form
>>                          const AVTextFormatSection *sections, int
>> nb_sections, AVTextFormatOptions options, char *show_data_hash)
>>  {
>>      AVTextFormatContext *tctx;
>> -    int i, ret = 0;
>> +    int ret = 0;
>>
>>      av_assert0(ptctx && formatter);
>>
>> @@ -202,7 +201,7 @@ int avtext_context_open(AVTextFormatContext
>> **ptctx, const AVTextFormatter *form
>>              if (ret == AVERROR(EINVAL)) {
>>                  const char *n;
>>                  av_log(NULL, AV_LOG_ERROR, "Unknown hash algorithm
>> '%s'\nKnown algorithms:", show_data_hash);
>> -                for (i = 0; (n = av_hash_names(i)); i++)
>> +                for (unsigned i = 0; (n = av_hash_names(i)); i++)
>>                      av_log(NULL, AV_LOG_ERROR, " %s", n);
>>                  av_log(NULL, AV_LOG_ERROR, "\n");
>>              }
>> @@ -525,13 +524,13 @@ void avtext_print_data(AVTextFormatContext
>> *tctx, const char *key,
>>  {
>>      AVBPrint bp;
>>      unsigned offset = 0;
>> -    int l, i;
>> +    int i;
>>
>>      av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
>>      av_bprintf(&bp, "\n");
>>      while (size) {
>>          av_bprintf(&bp, "%08x: ", offset);
>> -        l = FFMIN(size, 16);
>> +        int l = FFMIN(size, 16);
>>          for (i = 0; i < l; i++) {
>>              av_bprintf(&bp, "%02x", data[i]);
>>              if (i & 1)
>> @@ -571,7 +570,6 @@ void avtext_print_integers(AVTextFormatContext
>> *tctx, const char *key,
>>  {
>>      AVBPrint bp;
>>      unsigned offset = 0;
>> -    int l, i;
>>
>>      if (!key || !data || !format || columns <= 0 || bytes <= 0)
>>          return;
>> @@ -580,8 +578,7 @@ void avtext_print_integers(AVTextFormatContext
>> *tctx, const char *key,
>>      av_bprintf(&bp, "\n");
>>      while (size) {
>>          av_bprintf(&bp, "%08x: ", offset);
>> -        l = FFMIN(size, columns);
>> -        for (i = 0; i < l; i++) {
>> +        for (int i = 0, l = FFMIN(size, columns); i < l; i++) {
>
> You are changing behavior here because size is changed inside the loop.
> The pre-evaluation into l is intentional.
>

I fail to see how I change anything here though? It is still just assigned before
the loop runs, just that l is scoped narrower?

> The remaining change should be ok.
>
> Thanks
> sw
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes
  2025-06-12 11:25   ` Marvin Scholz
@ 2025-06-12 16:10     ` softworkz .
  2025-06-12 17:07       ` Marvin Scholz
  0 siblings, 1 reply; 13+ messages in thread
From: softworkz . @ 2025-06-12 16:10 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Marvin Scholz
> Sent: Donnerstag, 12. Juni 2025 13:25
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
> variable scopes
> 
> 
> 
> On 12 Jun 2025, at 4:26, softworkz . wrote:
> 
> > Hi Marvin,
> >
> >> -----Original Message-----
> >> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf
> Of
> >> Marvin Scholz
> >> Sent: Mittwoch, 11. Juni 2025 22:42
> >> To: ffmpeg-devel@ffmpeg.org
> >> Subject: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
> >> variable scopes
> >>
> >> ---
> >>  fftools/textformat/avtextformat.c | 15 ++++++---------
> >>  1 file changed, 6 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/fftools/textformat/avtextformat.c
> >> b/fftools/textformat/avtextformat.c
> >> index 14779e6f0c..f1811abb1c 100644
> >> --- a/fftools/textformat/avtextformat.c
> >> +++ b/fftools/textformat/avtextformat.c
> >> @@ -101,7 +101,6 @@ static void bprint_bytes(AVBPrint *bp, const
> >> uint8_t *ubuf, size_t ubuf_size)
> >>  int avtext_context_close(AVTextFormatContext **ptctx)
> >>  {
> >>      AVTextFormatContext *tctx = *ptctx;
> >> -    int i;
> >>      int ret = 0;
> >>
> >>      if (!tctx)
> >> @@ -117,7 +116,7 @@ int avtext_context_close(AVTextFormatContext
> >> **ptctx)
> >>          if (tctx->formatter->priv_class)
> >>              av_opt_free(tctx->priv);
> >>      }
> >> -    for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
> >> +    for (int i = 0; i < SECTION_MAX_NB_LEVELS; i++)
> >>          av_bprint_finalize(&tctx->section_pbuf[i], NULL);
> >>      av_freep(&tctx->priv);
> >>      av_opt_free(tctx);
> >> @@ -130,7 +129,7 @@ int avtext_context_open(AVTextFormatContext
> >> **ptctx, const AVTextFormatter *form
> >>                          const AVTextFormatSection *sections,
> int
> >> nb_sections, AVTextFormatOptions options, char *show_data_hash)
> >>  {
> >>      AVTextFormatContext *tctx;
> >> -    int i, ret = 0;
> >> +    int ret = 0;
> >>
> >>      av_assert0(ptctx && formatter);
> >>
> >> @@ -202,7 +201,7 @@ int avtext_context_open(AVTextFormatContext
> >> **ptctx, const AVTextFormatter *form
> >>              if (ret == AVERROR(EINVAL)) {
> >>                  const char *n;
> >>                  av_log(NULL, AV_LOG_ERROR, "Unknown hash
> algorithm
> >> '%s'\nKnown algorithms:", show_data_hash);
> >> -                for (i = 0; (n = av_hash_names(i)); i++)
> >> +                for (unsigned i = 0; (n = av_hash_names(i));
> i++)
> >>                      av_log(NULL, AV_LOG_ERROR, " %s", n);
> >>                  av_log(NULL, AV_LOG_ERROR, "\n");
> >>              }
> >> @@ -525,13 +524,13 @@ void avtext_print_data(AVTextFormatContext
> >> *tctx, const char *key,
> >>  {
> >>      AVBPrint bp;
> >>      unsigned offset = 0;
> >> -    int l, i;
> >> +    int i;
> >>
> >>      av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
> >>      av_bprintf(&bp, "\n");
> >>      while (size) {
> >>          av_bprintf(&bp, "%08x: ", offset);
> >> -        l = FFMIN(size, 16);
> >> +        int l = FFMIN(size, 16);
> >>          for (i = 0; i < l; i++) {
> >>              av_bprintf(&bp, "%02x", data[i]);
> >>              if (i & 1)
> >> @@ -571,7 +570,6 @@ void
> avtext_print_integers(AVTextFormatContext
> >> *tctx, const char *key,
> >>  {
> >>      AVBPrint bp;
> >>      unsigned offset = 0;
> >> -    int l, i;
> >>
> >>      if (!key || !data || !format || columns <= 0 || bytes <= 0)
> >>          return;
> >> @@ -580,8 +578,7 @@ void
> avtext_print_integers(AVTextFormatContext
> >> *tctx, const char *key,
> >>      av_bprintf(&bp, "\n");
> >>      while (size) {
> >>          av_bprintf(&bp, "%08x: ", offset);
> >> -        l = FFMIN(size, columns);
> >> -        for (i = 0; i < l; i++) {
> >> +        for (int i = 0, l = FFMIN(size, columns); i < l; i++) {
> >
> > You are changing behavior here because size is changed inside the
> loop.
> > The pre-evaluation into l is intentional.
> >
> 
> I fail to see how I change anything here though? It is still just
> assigned before
> the loop runs, just that l is scoped narrower?

This is the original code:

        l = FFMIN(size, columns);
        for (i = 0; i < l; i++) {
            if      (bytes == 1) av_bprintf(&bp, format, *data);
            else if (bytes == 2) av_bprintf(&bp, format, AV_RN16(data));
            else if (bytes == 4) av_bprintf(&bp, format, AV_RN32(data));
            data += bytes;
            size--;
        }

See the size-- ?


Thanks
sw







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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes
  2025-06-12 16:10     ` softworkz .
@ 2025-06-12 17:07       ` Marvin Scholz
  2025-06-12 17:11         ` softworkz .
  0 siblings, 1 reply; 13+ messages in thread
From: Marvin Scholz @ 2025-06-12 17:07 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



On 12 Jun 2025, at 18:10, softworkz . wrote:

>> -----Original Message-----
>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
>> Marvin Scholz
>> Sent: Donnerstag, 12. Juni 2025 13:25
>> To: FFmpeg development discussions and patches <ffmpeg-
>> devel@ffmpeg.org>
>> Subject: Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
>> variable scopes
>>
>>
>>
>> On 12 Jun 2025, at 4:26, softworkz . wrote:
>>
>>> Hi Marvin,
>>>
>>>> -----Original Message-----
>>>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf
>> Of
>>>> Marvin Scholz
>>>> Sent: Mittwoch, 11. Juni 2025 22:42
>>>> To: ffmpeg-devel@ffmpeg.org
>>>> Subject: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
>>>> variable scopes
>>>>
>>>> ---
>>>>  fftools/textformat/avtextformat.c | 15 ++++++---------
>>>>  1 file changed, 6 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/fftools/textformat/avtextformat.c
>>>> b/fftools/textformat/avtextformat.c
>>>> index 14779e6f0c..f1811abb1c 100644
>>>> --- a/fftools/textformat/avtextformat.c
>>>> +++ b/fftools/textformat/avtextformat.c
>>>> @@ -101,7 +101,6 @@ static void bprint_bytes(AVBPrint *bp, const
>>>> uint8_t *ubuf, size_t ubuf_size)
>>>>  int avtext_context_close(AVTextFormatContext **ptctx)
>>>>  {
>>>>      AVTextFormatContext *tctx = *ptctx;
>>>> -    int i;
>>>>      int ret = 0;
>>>>
>>>>      if (!tctx)
>>>> @@ -117,7 +116,7 @@ int avtext_context_close(AVTextFormatContext
>>>> **ptctx)
>>>>          if (tctx->formatter->priv_class)
>>>>              av_opt_free(tctx->priv);
>>>>      }
>>>> -    for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
>>>> +    for (int i = 0; i < SECTION_MAX_NB_LEVELS; i++)
>>>>          av_bprint_finalize(&tctx->section_pbuf[i], NULL);
>>>>      av_freep(&tctx->priv);
>>>>      av_opt_free(tctx);
>>>> @@ -130,7 +129,7 @@ int avtext_context_open(AVTextFormatContext
>>>> **ptctx, const AVTextFormatter *form
>>>>                          const AVTextFormatSection *sections,
>> int
>>>> nb_sections, AVTextFormatOptions options, char *show_data_hash)
>>>>  {
>>>>      AVTextFormatContext *tctx;
>>>> -    int i, ret = 0;
>>>> +    int ret = 0;
>>>>
>>>>      av_assert0(ptctx && formatter);
>>>>
>>>> @@ -202,7 +201,7 @@ int avtext_context_open(AVTextFormatContext
>>>> **ptctx, const AVTextFormatter *form
>>>>              if (ret == AVERROR(EINVAL)) {
>>>>                  const char *n;
>>>>                  av_log(NULL, AV_LOG_ERROR, "Unknown hash
>> algorithm
>>>> '%s'\nKnown algorithms:", show_data_hash);
>>>> -                for (i = 0; (n = av_hash_names(i)); i++)
>>>> +                for (unsigned i = 0; (n = av_hash_names(i));
>> i++)
>>>>                      av_log(NULL, AV_LOG_ERROR, " %s", n);
>>>>                  av_log(NULL, AV_LOG_ERROR, "\n");
>>>>              }
>>>> @@ -525,13 +524,13 @@ void avtext_print_data(AVTextFormatContext
>>>> *tctx, const char *key,
>>>>  {
>>>>      AVBPrint bp;
>>>>      unsigned offset = 0;
>>>> -    int l, i;
>>>> +    int i;
>>>>
>>>>      av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
>>>>      av_bprintf(&bp, "\n");
>>>>      while (size) {
>>>>          av_bprintf(&bp, "%08x: ", offset);
>>>> -        l = FFMIN(size, 16);
>>>> +        int l = FFMIN(size, 16);
>>>>          for (i = 0; i < l; i++) {
>>>>              av_bprintf(&bp, "%02x", data[i]);
>>>>              if (i & 1)
>>>> @@ -571,7 +570,6 @@ void
>> avtext_print_integers(AVTextFormatContext
>>>> *tctx, const char *key,
>>>>  {
>>>>      AVBPrint bp;
>>>>      unsigned offset = 0;
>>>> -    int l, i;
>>>>
>>>>      if (!key || !data || !format || columns <= 0 || bytes <= 0)
>>>>          return;
>>>> @@ -580,8 +578,7 @@ void
>> avtext_print_integers(AVTextFormatContext
>>>> *tctx, const char *key,
>>>>      av_bprintf(&bp, "\n");
>>>>      while (size) {
>>>>          av_bprintf(&bp, "%08x: ", offset);
>>>> -        l = FFMIN(size, columns);
>>>> -        for (i = 0; i < l; i++) {
>>>> +        for (int i = 0, l = FFMIN(size, columns); i < l; i++) {
>>>
>>> You are changing behavior here because size is changed inside the
>> loop.
>>> The pre-evaluation into l is intentional.
>>>
>>
>> I fail to see how I change anything here though? It is still just
>> assigned before
>> the loop runs, just that l is scoped narrower?
>
> This is the original code:
>
>         l = FFMIN(size, columns);
>         for (i = 0; i < l; i++) {
>             if      (bytes == 1) av_bprintf(&bp, format, *data);
>             else if (bytes == 2) av_bprintf(&bp, format, AV_RN16(data));
>             else if (bytes == 4) av_bprintf(&bp, format, AV_RN32(data));
>             data += bytes;
>             size--;
>         }
>
> See the size-- ?
>

I see that but again I fail to see how this changes anything.
I am not changing that l is assigned before the loop runs, just
narrow the scope to the loop.

See: https://godbolt.org/z/c3hGKfne4

>
> Thanks
> sw
>
>
>
>
>
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes
  2025-06-12 17:07       ` Marvin Scholz
@ 2025-06-12 17:11         ` softworkz .
  0 siblings, 0 replies; 13+ messages in thread
From: softworkz . @ 2025-06-12 17:11 UTC (permalink / raw)
  To: FFmpeg development discussions and patches



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Marvin Scholz
> Sent: Donnerstag, 12. Juni 2025 19:07
> To: FFmpeg development discussions and patches <ffmpeg-
> devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
> variable scopes
> 
> 
> 
> On 12 Jun 2025, at 18:10, softworkz . wrote:
> 
> >> -----Original Message-----
> >> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf
> Of
> >> Marvin Scholz
> >> Sent: Donnerstag, 12. Juni 2025 13:25
> >> To: FFmpeg development discussions and patches <ffmpeg-
> >> devel@ffmpeg.org>
> >> Subject: Re: [FFmpeg-devel] [PATCH 1/4] fftools/textformat:
> narrow
> >> variable scopes
> >>
> >>
> >>
> >> On 12 Jun 2025, at 4:26, softworkz . wrote:
> >>
> >>> Hi Marvin,
> >>>
> >>>> -----Original Message-----
> >>>> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf
> >> Of
> >>>> Marvin Scholz
> >>>> Sent: Mittwoch, 11. Juni 2025 22:42
> >>>> To: ffmpeg-devel@ffmpeg.org
> >>>> Subject: [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow
> >>>> variable scopes
> >>>>
> >>>> ---
> >>>>  fftools/textformat/avtextformat.c | 15 ++++++---------
> >>>>  1 file changed, 6 insertions(+), 9 deletions(-)
> >>>>
> >>>> diff --git a/fftools/textformat/avtextformat.c
> >>>> b/fftools/textformat/avtextformat.c
> >>>> index 14779e6f0c..f1811abb1c 100644
> >>>> --- a/fftools/textformat/avtextformat.c
> >>>> +++ b/fftools/textformat/avtextformat.c
> >>>> @@ -101,7 +101,6 @@ static void bprint_bytes(AVBPrint *bp,
> const
> >>>> uint8_t *ubuf, size_t ubuf_size)
> >>>>  int avtext_context_close(AVTextFormatContext **ptctx)
> >>>>  {
> >>>>      AVTextFormatContext *tctx = *ptctx;
> >>>> -    int i;
> >>>>      int ret = 0;
> >>>>
> >>>>      if (!tctx)
> >>>> @@ -117,7 +116,7 @@ int
> avtext_context_close(AVTextFormatContext
> >>>> **ptctx)
> >>>>          if (tctx->formatter->priv_class)
> >>>>              av_opt_free(tctx->priv);
> >>>>      }
> >>>> -    for (i = 0; i < SECTION_MAX_NB_LEVELS; i++)
> >>>> +    for (int i = 0; i < SECTION_MAX_NB_LEVELS; i++)
> >>>>          av_bprint_finalize(&tctx->section_pbuf[i], NULL);
> >>>>      av_freep(&tctx->priv);
> >>>>      av_opt_free(tctx);
> >>>> @@ -130,7 +129,7 @@ int
> avtext_context_open(AVTextFormatContext
> >>>> **ptctx, const AVTextFormatter *form
> >>>>                          const AVTextFormatSection *sections,
> >> int
> >>>> nb_sections, AVTextFormatOptions options, char
> *show_data_hash)
> >>>>  {
> >>>>      AVTextFormatContext *tctx;
> >>>> -    int i, ret = 0;
> >>>> +    int ret = 0;
> >>>>
> >>>>      av_assert0(ptctx && formatter);
> >>>>
> >>>> @@ -202,7 +201,7 @@ int
> avtext_context_open(AVTextFormatContext
> >>>> **ptctx, const AVTextFormatter *form
> >>>>              if (ret == AVERROR(EINVAL)) {
> >>>>                  const char *n;
> >>>>                  av_log(NULL, AV_LOG_ERROR, "Unknown hash
> >> algorithm
> >>>> '%s'\nKnown algorithms:", show_data_hash);
> >>>> -                for (i = 0; (n = av_hash_names(i)); i++)
> >>>> +                for (unsigned i = 0; (n = av_hash_names(i));
> >> i++)
> >>>>                      av_log(NULL, AV_LOG_ERROR, " %s", n);
> >>>>                  av_log(NULL, AV_LOG_ERROR, "\n");
> >>>>              }
> >>>> @@ -525,13 +524,13 @@ void
> avtext_print_data(AVTextFormatContext
> >>>> *tctx, const char *key,
> >>>>  {
> >>>>      AVBPrint bp;
> >>>>      unsigned offset = 0;
> >>>> -    int l, i;
> >>>> +    int i;
> >>>>
> >>>>      av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED);
> >>>>      av_bprintf(&bp, "\n");
> >>>>      while (size) {
> >>>>          av_bprintf(&bp, "%08x: ", offset);
> >>>> -        l = FFMIN(size, 16);
> >>>> +        int l = FFMIN(size, 16);
> >>>>          for (i = 0; i < l; i++) {
> >>>>              av_bprintf(&bp, "%02x", data[i]);
> >>>>              if (i & 1)
> >>>> @@ -571,7 +570,6 @@ void
> >> avtext_print_integers(AVTextFormatContext
> >>>> *tctx, const char *key,
> >>>>  {
> >>>>      AVBPrint bp;
> >>>>      unsigned offset = 0;
> >>>> -    int l, i;
> >>>>
> >>>>      if (!key || !data || !format || columns <= 0 || bytes <=
> 0)
> >>>>          return;
> >>>> @@ -580,8 +578,7 @@ void
> >> avtext_print_integers(AVTextFormatContext
> >>>> *tctx, const char *key,
> >>>>      av_bprintf(&bp, "\n");
> >>>>      while (size) {
> >>>>          av_bprintf(&bp, "%08x: ", offset);
> >>>> -        l = FFMIN(size, columns);
> >>>> -        for (i = 0; i < l; i++) {
> >>>> +        for (int i = 0, l = FFMIN(size, columns); i < l; i++)
> {
> >>>
> >>> You are changing behavior here because size is changed inside
> the
> >> loop.
> >>> The pre-evaluation into l is intentional.
> >>>
> >>
> >> I fail to see how I change anything here though? It is still
> just
> >> assigned before
> >> the loop runs, just that l is scoped narrower?
> >
> > This is the original code:
> >
> >         l = FFMIN(size, columns);
> >         for (i = 0; i < l; i++) {
> >             if      (bytes == 1) av_bprintf(&bp, format, *data);
> >             else if (bytes == 2) av_bprintf(&bp, format,
> AV_RN16(data));
> >             else if (bytes == 4) av_bprintf(&bp, format,
> AV_RN32(data));
> >             data += bytes;
> >             size--;
> >         }
> >
> > See the size-- ?
> >
> 
> I see that but again I fail to see how this changes anything.
> I am not changing that l is assigned before the loop runs, just
> narrow the scope to the loop.
> 
> See: https://godbolt.org/z/c3hGKfne4

Ooops - my fault. I didn't look carefully enough.

LGTM! 

Thanks and sorry,
sw

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

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-06-12 17:12 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-06-11 20:42 [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes Marvin Scholz
2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 2/4] fftools/textformat: remove noop free Marvin Scholz
2025-06-12  2:28   ` softworkz .
2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 3/4] fftools/textformat: do not return early Marvin Scholz
2025-06-12  2:31   ` softworkz .
2025-06-11 20:42 ` [FFmpeg-devel] [PATCH 4/4] fftools/textformat: remove useless error check Marvin Scholz
2025-06-11 20:53   ` Andreas Rheinhardt
2025-06-11 21:05     ` Marvin Scholz
2025-06-12  2:26 ` [FFmpeg-devel] [PATCH 1/4] fftools/textformat: narrow variable scopes softworkz .
2025-06-12 11:25   ` Marvin Scholz
2025-06-12 16:10     ` softworkz .
2025-06-12 17:07       ` Marvin Scholz
2025-06-12 17:11         ` softworkz .

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git