[evolution] I#1003 - ASAN: Left shift of 0xFF00 by 16 places cannot be represented in type 'int'
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] I#1003 - ASAN: Left shift of 0xFF00 by 16 places cannot be represented in type 'int'
- Date: Fri, 26 Jun 2020 07:46:23 +0000 (UTC)
commit 807604535ab0531a38ef9d3eefffa01ddb32be47
Author: Milan Crha <mcrha redhat com>
Date: Fri Jun 26 09:43:38 2020 +0200
I#1003 - ASAN: Left shift of 0xFF00 by 16 places cannot be represented in type 'int'
Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/1003
src/e-util/e-misc-utils.c | 6 +++---
src/libgnomecanvas/gnome-canvas-rect.c | 8 ++++----
src/libgnomecanvas/gnome-canvas-text.c | 10 ++--------
src/libgnomecanvas/gnome-canvas.h | 18 +++++++++---------
4 files changed, 18 insertions(+), 24 deletions(-)
---
diff --git a/src/e-util/e-misc-utils.c b/src/e-util/e-misc-utils.c
index 7a178ef460..1908109a03 100644
--- a/src/e-util/e-misc-utils.c
+++ b/src/e-util/e-misc-utils.c
@@ -1376,9 +1376,9 @@ e_rgba_to_value (const GdkRGBA *rgba)
blue = 255 * rgba->blue;
return (guint32)
- ((((red & 0xFF) << 16) |
- ((green & 0xFF) << 8) |
- (blue & 0xFF)) & 0xffffff);
+ ((((red & 0xFFu) << 16) |
+ ((green & 0xFFu) << 8) |
+ (blue & 0xFFu)) & 0xffffffu);
}
/**
diff --git a/src/libgnomecanvas/gnome-canvas-rect.c b/src/libgnomecanvas/gnome-canvas-rect.c
index 462a5cf23b..f3a5a8789f 100644
--- a/src/libgnomecanvas/gnome-canvas-rect.c
+++ b/src/libgnomecanvas/gnome-canvas-rect.c
@@ -94,10 +94,10 @@ get_rgba_from_color (GdkColor *color)
bb = 0xFF * color->blue / 65535.0;
aa = 0xFF;
- return (rr & 0xFF) << 24 |
- (gg & 0xFF) << 16 |
- (bb & 0xFF) << 8 |
- (aa & 0xFF);
+ return (rr & 0xFFu) << 24 |
+ (gg & 0xFFu) << 16 |
+ (bb & 0xFFu) << 8 |
+ (aa & 0xFFu);
}
static gboolean
diff --git a/src/libgnomecanvas/gnome-canvas-text.c b/src/libgnomecanvas/gnome-canvas-text.c
index 43e6e76a78..63de7aed8c 100644
--- a/src/libgnomecanvas/gnome-canvas-text.c
+++ b/src/libgnomecanvas/gnome-canvas-text.c
@@ -931,10 +931,7 @@ gnome_canvas_text_set_property (GObject *object,
if (color_name) {
GdkColor color;
if (gdk_color_parse (color_name, &color)) {
- text->rgba = ((color.red & 0xff00) << 16 |
- (color.green & 0xff00) << 8 |
- (color.blue & 0xff00) |
- 0xff);
+ text->rgba = GNOME_CANVAS_COLOR (color.red, color.green, color.blue);
} else {
g_warning (
"%s: Failed to parse color form string '%s'",
@@ -947,10 +944,7 @@ gnome_canvas_text_set_property (GObject *object,
case PROP_FILL_COLOR_GDK:
pcolor = g_value_get_boxed (value);
if (pcolor) {
- text->rgba = ((pcolor->red & 0xff00) << 16 |
- (pcolor->green & 0xff00) << 8|
- (pcolor->blue & 0xff00) |
- 0xff);
+ text->rgba = GNOME_CANVAS_COLOR (pcolor->red, pcolor->green, pcolor->blue);
} else {
text->rgba = 0;
}
diff --git a/src/libgnomecanvas/gnome-canvas.h b/src/libgnomecanvas/gnome-canvas.h
index 675de55742..ebd58045a1 100644
--- a/src/libgnomecanvas/gnome-canvas.h
+++ b/src/libgnomecanvas/gnome-canvas.h
@@ -46,15 +46,15 @@ G_BEGIN_DECLS
* [0, 255].
*/
-#define GNOME_CANVAS_COLOR(r, g, b) ((((guint) (r) & 0xff) << 24) \
- | (((guint) (g) & 0xff) << 16) \
- | (((guint) (b) & 0xff) << 8) \
- | 0xff)
-
-#define GNOME_CANVAS_COLOR_A(r, g, b, a) ((((guint) (r) & 0xff) << 24) \
- | (((guint) (g) & 0xff) << 16) \
- | (((guint) (b) & 0xff) << 8) \
- | ((guint) (a) & 0xff))
+#define GNOME_CANVAS_COLOR(r, g, b) ((((guint) (r) & 0xffu) << 24) \
+ | (((guint) (g) & 0xffu) << 16) \
+ | (((guint) (b) & 0xffu) << 8) \
+ | 0xffu)
+
+#define GNOME_CANVAS_COLOR_A(r, g, b, a) ((((guint) (r) & 0xffu) << 24) \
+ | (((guint) (g) & 0xffu) << 16) \
+ | (((guint) (b) & 0xffu) << 8) \
+ | ((guint) (a) & 0xffu))
typedef struct _GnomeCanvas GnomeCanvas;
typedef struct _GnomeCanvasClass GnomeCanvasClass;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]