]> git.mdlowis.com Git - proto/labwc.git/commitdiff
xbm/parse: use uint32 instead of int for << 24
authorJohan Malm <jgm323@gmail.com>
Wed, 12 Aug 2020 18:42:59 +0000 (19:42 +0100)
committerJohan Malm <jgm323@gmail.com>
Wed, 12 Aug 2020 18:42:59 +0000 (19:42 +0100)
src/theme/xbm/parse.c

index a85f0ae4976037da4aa861146541db4637228f5a..a171428e0bc7036ddf6765da895ecd97a5b02dd2 100644 (file)
@@ -19,12 +19,11 @@ static unsigned char defaultcolor[] = { 255, 255, 255, 255 };
 
 static uint32_t u32(unsigned char *rgba)
 {
-       uint32_t ret = 0;
-       ret |= (rgba[3] & 0xff) << 24;
-       ret |= (rgba[2] & 0xff) << 16;
-       ret |= (rgba[1] & 0xff) << 8;
-       ret |= (rgba[0] & 0xff);
-       return ret;
+       uint32_t r[4] = { 0 };
+       for (int i = 0; i < 4; i++)
+               r[i] = rgba[i];
+       return ((r[3] & 0xff) << 24) | ((r[2] & 0xff) << 16) |
+              ((r[1] & 0xff) << 8) | (r[0] & 0xff);
 }
 
 static void process_bytes(struct pixmap *pixmap, struct token *tokens)