diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2007-01-05 06:16:32 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2007-01-05 06:16:32 +0000 |
commit | b4328913d88e72d87d25e7f9031f001862624aa4 (patch) | |
tree | 2556fb04251eaeab93d370749a4557e9812cfee6 /gdk/gdkprivate.h | |
parent | d6e4485f9fe495d146cf0b9d7f951662aea55e1a (diff) | |
download | gtk+-b4328913d88e72d87d25e7f9031f001862624aa4.tar.gz |
Avoid overflow when converting coordinates to Pango units. (#332266, Jody
2007-01-05 Behdad Esfahbod <behdad@gnome.org>
* gdk/gdkprivate.h:
* gdk/gdkpango.c (gdk_draw_layout_line_with_colors),
(gdk_draw_layout_with_colors):
* gdk/gdkwindow.c (gdk_window_draw_glyphs_transformed):
Avoid overflow when converting coordinates to Pango units. (#332266,
Jody Goldberg)
svn path=/trunk/; revision=17075
Diffstat (limited to 'gdk/gdkprivate.h')
-rw-r--r-- | gdk/gdkprivate.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gdk/gdkprivate.h b/gdk/gdkprivate.h index 4dcbfe6d60..95af2e151f 100644 --- a/gdk/gdkprivate.h +++ b/gdk/gdkprivate.h @@ -50,6 +50,16 @@ void gdk_synthesize_window_state (GdkWindow *window, GdkWindowState unset_flags, GdkWindowState set_flags); +/* Tests whether a pair of x,y may cause overflows when converted to Pango + * units (multiplied by PANGO_SCALE). We don't allow the entire range, leave + * some space for additions afterwards, to be safe... + */ +#define GDK_PANGO_UNITS_OVERFLOWS(x,y) (G_UNLIKELY ( \ + (y) >= PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2 || \ + (x) >= PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2 || \ + (y) <=-PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2 || \ + (x) <=-PANGO_PIXELS (G_MAXINT-PANGO_SCALE)/2)) + G_END_DECLS #endif /* __GDK_PRIVATE_H__ */ |