From d558d49c1413ed09694896fb6684e76f641991b7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 18 Apr 2007 15:19:58 +0000 Subject: Handle a borderline case correctly svn path=/trunk/; revision=17608 --- gdk/gdkregion-generic.h | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'gdk') 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); \ } /* -- cgit v1.2.1