diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2007-04-18 15:19:58 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2007-04-18 15:19:58 +0000 |
commit | d558d49c1413ed09694896fb6684e76f641991b7 (patch) | |
tree | 7daad46d4b6d08a7805e439ed8c3ce2410b0291f /gdk | |
parent | b235fff0bf01c9476ea10337657bc4820f64e0cb (diff) | |
download | gtk+-d558d49c1413ed09694896fb6684e76f641991b7.tar.gz |
Handle a borderline case correctly
svn path=/trunk/; revision=17608
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/gdkregion-generic.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/gdk/gdkregion-generic.h b/gdk/gdkregion-generic.h index bae8c9b776..9f510621e7 100644 --- a/gdk/gdkregion-generic.h +++ b/gdk/gdkregion-generic.h @@ -83,14 +83,20 @@ struct _GdkRegion (idRect)->extents.y2 = (r)->y2;\ } -#define GROWREGION(reg, nRects){ \ - if ((reg)->rects == &(reg)->extents) { \ - (reg)->rects = g_new (GdkRegionBox, (nRects)); \ - (reg)->rects[0] = reg->extents; \ - } \ - else \ - (reg)->rects = g_renew (GdkRegionBox, (reg)->rects, (nRects)); \ - (reg)->size = (nRects); \ +#define GROWREGION(reg, nRects) { \ + if ((nRects) == 0) { \ + if ((reg)->rects != &(reg)->extents) { \ + g_free ((reg)->rects); \ + (reg)->rects = &(reg)->extents; \ + } \ + } \ + else if ((reg)->rects == &(reg)->extents) { \ + (reg)->rects = g_new (GdkRegionBox, (nRects)); \ + (reg)->rects[0] = (reg)->extents; \ + } \ + else \ + (reg)->rects = g_renew (GdkRegionBox, (reg)->rects, (nRects)); \ + (reg)->size = (nRects); \ } /* |