> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of
> Marvin Scholz
> Sent: Donnerstag, 12. Juni 2025 19:07
> To: FFmpeg development discussions and patches <ffmpeg-
> de...@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-boun...@ffmpeg.org> On Behalf
> Of
> >> Marvin Scholz
> >> Sent: Donnerstag, 12. Juni 2025 13:25
> >> To: FFmpeg development discussions and patches <ffmpeg-
> >> de...@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-boun...@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-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to