diff mbox series

[FFmpeg-devel,1/5] avutil/pixdesc: Remove always-false checks

Message ID GV1P250MB073722E20166CCF2883487CF8F529@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
State Accepted
Commit 6d0a7e96e746a8a0fc03725a0f5e2c908c82b7c3
Headers show
Series [FFmpeg-devel,1/5] avutil/pixdesc: Remove always-false checks | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt Sept. 26, 2022, 7:57 p.m. UTC
ff_check_pixfmt_descriptors() was added in commit
20e99a9c10cdbe9ad659dce5bdec569d744f8219. At this time,
the values of enum AVPixelFormat were not contiguous;
instead there was a jump from 111 to 291 (or from 115
to 295 depending upon AV_PIX_FMT_ABI_GIT_MASTER).
ff_check_pixfmt_descriptors() accounts for this
by skipping empty descriptors. Yet this issue no longer
exists: There are no holes.

The check for said holes makes GCC believe that the name
can be NULL; because it is used as argument corresponding to
%s in a log statement, it therefore emits a warning
(since d75c4693fef51e8f0a1b88798530f4c5147ea906). Therefore
this commit simply removes these checks.

Also move the checks for name before the log statement.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavutil/pixdesc.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Andreas Rheinhardt Sept. 29, 2022, 9:04 p.m. UTC | #1
Andreas Rheinhardt:
> ff_check_pixfmt_descriptors() was added in commit
> 20e99a9c10cdbe9ad659dce5bdec569d744f8219. At this time,
> the values of enum AVPixelFormat were not contiguous;
> instead there was a jump from 111 to 291 (or from 115
> to 295 depending upon AV_PIX_FMT_ABI_GIT_MASTER).
> ff_check_pixfmt_descriptors() accounts for this
> by skipping empty descriptors. Yet this issue no longer
> exists: There are no holes.
> 
> The check for said holes makes GCC believe that the name
> can be NULL; because it is used as argument corresponding to
> %s in a log statement, it therefore emits a warning
> (since d75c4693fef51e8f0a1b88798530f4c5147ea906). Therefore
> this commit simply removes these checks.
> 
> Also move the checks for name before the log statement.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>  libavutil/pixdesc.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> index 3ac44614a7..c42a0242c5 100644
> --- a/libavutil/pixdesc.c
> +++ b/libavutil/pixdesc.c
> @@ -2922,13 +2922,11 @@ void ff_check_pixfmt_descriptors(void){
>          int linesize[4] = {0,0,0,0};
>          uint16_t tmp[2];
>  
> -        if (!d->name && !d->nb_components && !d->log2_chroma_w && !d->log2_chroma_h && !d->flags)
> -            continue;
> +        av_assert0(d->name && d->name[0]);
>          av_log(NULL, AV_LOG_INFO, "Checking: %s\n", d->name);
>          av_assert0(d->log2_chroma_w <= 3);
>          av_assert0(d->log2_chroma_h <= 3);
>          av_assert0(d->nb_components <= 4);
> -        av_assert0(d->name && d->name[0]);
>          av_assert2(av_get_pix_fmt(d->name) == i);
>  
>          for (j=0; j<FF_ARRAY_ELEMS(d->comp); j++) {

Will apply this patchset (with the issue pointed out by Anton fixed)
tomorrow unless there are objections.

- Andreas
diff mbox series

Patch

diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 3ac44614a7..c42a0242c5 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -2922,13 +2922,11 @@  void ff_check_pixfmt_descriptors(void){
         int linesize[4] = {0,0,0,0};
         uint16_t tmp[2];
 
-        if (!d->name && !d->nb_components && !d->log2_chroma_w && !d->log2_chroma_h && !d->flags)
-            continue;
+        av_assert0(d->name && d->name[0]);
         av_log(NULL, AV_LOG_INFO, "Checking: %s\n", d->name);
         av_assert0(d->log2_chroma_w <= 3);
         av_assert0(d->log2_chroma_h <= 3);
         av_assert0(d->nb_components <= 4);
-        av_assert0(d->name && d->name[0]);
         av_assert2(av_get_pix_fmt(d->name) == i);
 
         for (j=0; j<FF_ARRAY_ELEMS(d->comp); j++) {