GraphicsMagick: coders/bmp.c Consider that image class is mutati...

GraphicsMagick Commits <[email protected]> Mon, 09 Oct 2023 13:25:17 -0500
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.7434.1696875926.1961.graphicsmagick-commit@lists.sourceforge.net>
changeset e981a3d54d22 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=e981a3d54d22
summary: coders/bmp.c Consider that image class is mutating to DirectClass.

diffstat:

 coders/bmp.c |  26 +++++++++++++++-----------
 1 files changed, 15 insertions(+), 11 deletions(-)

diffs (43 lines):

diff -r 33c9dfbeec7d -r e981a3d54d22 coders/bmp.c
--- a/coders/bmp.c	Mon Oct 09 20:03:17 2023 +0200
+++ b/coders/bmp.c	Mon Oct 09 20:24:59 2023 +0200
@@ -2245,17 +2245,9 @@
           bmp_info.bits_per_pixel = 0;
           bmp_info.compression = BI_PNG;
         }
-      else if (image->storage_class==DirectClass || image->colors==0)
-        {
-          /*
-            Full color BMP raster.
-          */
-          bmp_info.number_colors=0;
-          bmp_info.bits_per_pixel=((type > 3) && image->matte) ? 32 : 24;
-          bmp_info.compression=
-            (type > 3) && image->matte ?  BI_BITFIELDS : BI_RGB;
-        }
-      else  /* image->storage_class != DirectClass*/
+      else
+      {
+        if(image->storage_class != DirectClass)
         {
           /*
             Colormapped BMP raster.
@@ -2284,6 +2276,18 @@
                   }
               }
         }
+           /* Note: Image class could be changed in a code above. */
+        if (image->storage_class==DirectClass)
+        {
+          /*
+            Full color BMP raster.
+          */
+          bmp_info.number_colors=0;
+          bmp_info.bits_per_pixel=((type > 3) && image->matte) ? 32 : 24;
+          bmp_info.compression=
+            (type > 3) && image->matte ?  BI_BITFIELDS : BI_RGB;
+        }
+      }
 
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                             "Final: Scene %lu, storage_class %s, colors %u",