kwo pushed a commit to branch master.

http://git.enlightenment.org/legacy/imlib2.git/commit/?id=543323230864ed8e00754b746f4f2ee2418ba0c4

commit 543323230864ed8e00754b746f4f2ee2418ba0c4
Author: Kim Woelders <[email protected]>
Date:   Thu Nov 4 16:25:00 2021 +0100

    Introduce UPDATE_FLAG()
    
    Somewhat simpler.
---
 src/lib/api.c                     | 42 ++++++---------------------------------
 src/lib/image.h                   |  2 ++
 src/modules/loaders/loader_argb.c |  5 +----
 src/modules/loaders/loader_bmp.c  |  6 ++----
 src/modules/loaders/loader_gif.c  |  5 +----
 src/modules/loaders/loader_lbm.c  |  5 +----
 src/modules/loaders/loader_png.c  |  5 +----
 src/modules/loaders/loader_pnm.c  |  5 +----
 src/modules/loaders/loader_tga.c  |  5 +----
 src/modules/loaders/loader_tiff.c |  6 ++----
 src/modules/loaders/loader_webp.c |  5 +----
 src/modules/loaders/loader_xpm.c  |  5 +----
 12 files changed, 20 insertions(+), 76 deletions(-)

diff --git a/src/lib/api.c b/src/lib/api.c
index 3f65bba..13b42bb 100644
--- a/src/lib/api.c
+++ b/src/lib/api.c
@@ -1754,14 +1754,7 @@ imlib_image_set_irrelevant_format(char irrelevant)
    CHECK_PARAM_POINTER("imlib_image_set_irrelevant_format", "image",
                        ctx->image);
    CAST_IMAGE(im, ctx->image);
-   if (irrelevant)
-     {
-        SET_FLAG(im->flags, F_FORMAT_IRRELEVANT);
-     }
-   else
-     {
-        UNSET_FLAG(im->flags, F_FORMAT_IRRELEVANT);
-     }
+   UPDATE_FLAG(im->flags, F_FORMAT_IRRELEVANT, irrelevant);
 }
 
 /**
@@ -1780,14 +1773,7 @@ imlib_image_set_irrelevant_border(char irrelevant)
    CHECK_PARAM_POINTER("imlib_image_set_irrelevant_border", "image",
                        ctx->image);
    CAST_IMAGE(im, ctx->image);
-   if (irrelevant)
-     {
-        SET_FLAG(im->flags, F_BORDER_IRRELEVANT);
-     }
-   else
-     {
-        UNSET_FLAG(im->flags, F_BORDER_IRRELEVANT);
-     }
+   UPDATE_FLAG(im->flags, F_BORDER_IRRELEVANT, irrelevant);
 }
 
 /**
@@ -1806,14 +1792,7 @@ imlib_image_set_irrelevant_alpha(char irrelevant)
    CHECK_CONTEXT(ctx);
    CHECK_PARAM_POINTER("imlib_image_set_irrelevant_alpha", "image", 
ctx->image);
    CAST_IMAGE(im, ctx->image);
-   if (irrelevant)
-     {
-        SET_FLAG(im->flags, F_ALPHA_IRRELEVANT);
-     }
-   else
-     {
-        UNSET_FLAG(im->flags, F_ALPHA_IRRELEVANT);
-     }
+   UPDATE_FLAG(im->flags, F_ALPHA_IRRELEVANT, irrelevant);
 }
 
 /**
@@ -1847,10 +1826,7 @@ imlib_image_set_has_alpha(char has_alpha)
    CHECK_CONTEXT(ctx);
    CHECK_PARAM_POINTER("imlib_image_set_has_alpha", "image", ctx->image);
    CAST_IMAGE(im, ctx->image);
-   if (has_alpha)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, has_alpha);
 }
 
 #ifdef BUILD_X11
@@ -2265,10 +2241,7 @@ imlib_create_image_from_drawable(Pixmap mask, int x, int 
y, int width,
                                   ctx->colormap, ctx->depth, x, y, width,
                                   height, &domask, need_to_grab_x))
      {
-        if (domask)
-           SET_FLAG(im->flags, F_HAS_ALPHA);
-        else
-           UNSET_FLAG(im->flags, F_HAS_ALPHA);
+        UPDATE_FLAG(im->flags, F_HAS_ALPHA, domask);
      }
    else
      {
@@ -2450,10 +2423,7 @@ imlib_create_scaled_image_from_drawable(Pixmap mask, int 
source_x,
                               ctx->visual, ctx->colormap, ctx->depth, 0, 0,
                               destination_width, destination_height, &domask,
                               need_to_grab_x);
-   if (domask)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, domask);
 
    if (mgc)
       XFreeGC(ctx->display, mgc);
diff --git a/src/lib/image.h b/src/lib/image.h
index dd1ed8c..c473365 100644
--- a/src/lib/image.h
+++ b/src/lib/image.h
@@ -171,6 +171,8 @@ int                 __imlib_CurrentCacheSize(void);
 
 #define SET_FLAG(flags, f) ((flags) |= (f))
 #define UNSET_FLAG(flags, f) ((flags) &= (~f))
+#define UPDATE_FLAG(flags, f, set) \
+   do { if (set) SET_FLAG(flags, f); else UNSET_FLAG(flags, f); } while(0)
 
 #define LOAD_FAIL       0
 #define LOAD_SUCCESS    1
diff --git a/src/modules/loaders/loader_argb.c 
b/src/modules/loaders/loader_argb.c
index 913ce83..fb326d9 100644
--- a/src/modules/loaders/loader_argb.c
+++ b/src/modules/loaders/loader_argb.c
@@ -70,10 +70,7 @@ load2(ImlibImage * im, int load_data)
    if (!IMAGE_DIMENSIONS_OK(im->w, im->h))
       goto quit;
 
-   if (alpha)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, alpha);
 
    if (!load_data)
      {
diff --git a/src/modules/loaders/loader_bmp.c b/src/modules/loaders/loader_bmp.c
index 14a3a7d..8f6f2ee 100644
--- a/src/modules/loaders/loader_bmp.c
+++ b/src/modules/loaders/loader_bmp.c
@@ -220,8 +220,6 @@ load2(ImlibImage * im, int load_data)
    ashift1 = rshift1 = gshift1 = bshift1 = 0;
    ashift2 = rshift2 = gshift2 = bshift2 = 1;
 
-   UNSET_FLAG(im->flags, F_HAS_ALPHA);
-
    if (bih.header_size == 12)
      {
         w = SWAP_LE_16(bih.bch.width);
@@ -251,8 +249,6 @@ load2(ImlibImage * im, int load_data)
              gmask = SWAP_LE_32(bih.bih.mask_g);
              bmask = SWAP_LE_32(bih.bih.mask_b);
              amask = SWAP_LE_32(bih.bih.mask_a);
-             if (amask)
-                SET_FLAG(im->flags, F_HAS_ALPHA);
           }
      }
    else
@@ -260,6 +256,8 @@ load2(ImlibImage * im, int load_data)
         goto quit;
      }
 
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, amask);
+
    imgsize = size - bfh_offset;
    D("w=%3d h=%3d bitcount=%d comp=%d imgsize=%d\n",
      w, h, bitcount, comp, imgsize);
diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c
index cc8baa7..7002417 100644
--- a/src/modules/loaders/loader_gif.c
+++ b/src/modules/loaders/loader_gif.c
@@ -104,10 +104,7 @@ load2(ImlibImage * im, int load_data)
      }
    while (rec != TERMINATE_RECORD_TYPE);
 
-   if (transp >= 0)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, transp >= 0);
 
    if (!rows)
       goto quit;
diff --git a/src/modules/loaders/loader_lbm.c b/src/modules/loaders/loader_lbm.c
index 752b344..ae96d38 100644
--- a/src/modules/loaders/loader_lbm.c
+++ b/src/modules/loaders/loader_lbm.c
@@ -486,10 +486,7 @@ load2(ImlibImage * im, int load_data)
 
    ilbm.mask = ilbm.bmhd.data[9];
 
-   if (ilbm.mask || ilbm.depth == 32)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, ilbm.mask || ilbm.depth == 32);
 
    env = getenv("IMLIB2_LBM_NOMASK");
    if (env
diff --git a/src/modules/loaders/loader_png.c b/src/modules/loaders/loader_png.c
index d8fd3a4..de9d103 100644
--- a/src/modules/loaders/loader_png.c
+++ b/src/modules/loaders/loader_png.c
@@ -82,10 +82,7 @@ load2(ImlibImage * im, int load_data)
       hasa = 1;
    if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
       hasa = 1;
-   if (hasa)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, hasa);
 
    if (!load_data)
      {
diff --git a/src/modules/loaders/loader_pnm.c b/src/modules/loaders/loader_pnm.c
index b78228a..8dab889 100644
--- a/src/modules/loaders/loader_pnm.c
+++ b/src/modules/loaders/loader_pnm.c
@@ -168,10 +168,7 @@ load2(ImlibImage * im, int load_data)
    if (!IMAGE_DIMENSIONS_OK(w, h))
       goto quit;
 
-   if (p == '8')
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, p == '8');
 
    if (!load_data)
      {
diff --git a/src/modules/loaders/loader_tga.c b/src/modules/loaders/loader_tga.c
index 6780598..c74d17f 100644
--- a/src/modules/loaders/loader_tga.c
+++ b/src/modules/loaders/loader_tga.c
@@ -284,10 +284,7 @@ load2(ImlibImage * im, int load_data)
    if (!IMAGE_DIMENSIONS_OK(im->w, im->h))
       goto quit;
 
-   if (hasa)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, hasa);
 
    if (!load_data)
      {
diff --git a/src/modules/loaders/loader_tiff.c 
b/src/modules/loaders/loader_tiff.c
index fa0e745..0b25ca0 100644
--- a/src/modules/loaders/loader_tiff.c
+++ b/src/modules/loaders/loader_tiff.c
@@ -311,10 +311,8 @@ load2(ImlibImage * im, int load_data)
    if (!IMAGE_DIMENSIONS_OK(im->w, im->h))
       goto quit;
 
-   if (rgba_image.rgba.alpha != EXTRASAMPLE_UNSPECIFIED)
-      SET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA,
+               rgba_image.rgba.alpha != EXTRASAMPLE_UNSPECIFIED);
 
    if (!load_data)
      {
diff --git a/src/modules/loaders/loader_webp.c 
b/src/modules/loaders/loader_webp.c
index 12986dc..d8a0b30 100644
--- a/src/modules/loaders/loader_webp.c
+++ b/src/modules/loaders/loader_webp.c
@@ -59,10 +59,7 @@ load2(ImlibImage * im, int load_data)
    if (!IMAGE_DIMENSIONS_OK(im->w, im->h))
       goto quit;
 
-   if (features.has_alpha == 0)
-      UNSET_FLAG(im->flags, F_HAS_ALPHA);
-   else
-      SET_FLAG(im->flags, F_HAS_ALPHA);
+   UPDATE_FLAG(im->flags, F_HAS_ALPHA, features.has_alpha);
 
    if (!load_data)
      {
diff --git a/src/modules/loaders/loader_xpm.c b/src/modules/loaders/loader_xpm.c
index d58de83..ccadf7b 100644
--- a/src/modules/loaders/loader_xpm.c
+++ b/src/modules/loaders/loader_xpm.c
@@ -360,10 +360,7 @@ load2(ImlibImage * im, int load_data)
                           qsort(cmap, ncolors, sizeof(cmap_t), xpm_cmap_sort);
                        context++;
 
-                       if (transp >= 0)
-                          SET_FLAG(im->flags, F_HAS_ALPHA);
-                       else
-                          UNSET_FLAG(im->flags, F_HAS_ALPHA);
+                       UPDATE_FLAG(im->flags, F_HAS_ALPHA, transp >= 0);
 
                        if (!load_data)
                          {

-- 


Reply via email to