diff --git a/ChangeLog b/ChangeLog index 403ec14ddf..77507fa50d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-04-18 Matthias Clasen + + Merged from trunk: + + * gdk/gdkregion-generic.h (GROWREGION): Handle the case + of nRects == 0 correctly. + 2007-04-18 Emmanuele Bassi Merged from trunk: 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); \ } /*