From 92f0e489b627aa9c07f120d6687b73149aa54cbc Mon Sep 17 00:00:00 2001 From: People doing a 16 bpc version of gimp Date: Thu, 18 Dec 1997 04:19:11 +0000 Subject: [PATCH] fix memory leak --- ChangeLog | 6 ++++++ app/brush_select.c | 9 ++++++++- app/gui/brush-select.c | 9 ++++++++- app/gui/pattern-select.c | 13 ++++++++++++- app/pattern_select.c | 13 ++++++++++++- 5 files changed, 46 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 26dcf66258..545dd255d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Dec 17 23:23:05 1997 Ray Lehtiniemi + + * app/brush_select.c (brush_popup_open): fix memory leak + + * app/pattern_select.c (pattern_popup_open): fix memory leak + Wed Dec 17 15:33:23 PST 1997 Manish Singh * plug-ins/pcx/pcx.c: Applied patch to fix PCX saving from diff --git a/app/brush_select.c b/app/brush_select.c index 043f28c36f..bd88e15f37 100644 --- a/app/brush_select.c +++ b/app/brush_select.c @@ -326,6 +326,7 @@ brush_popup_open (BrushSelectP bsp, gint scr_w, scr_h; gchar *src, *buf; + /* make sure the popup exists and is not visible */ if (bsp->brush_popup == NULL) { GtkWidget *frame; @@ -342,8 +343,11 @@ brush_popup_open (BrushSelectP bsp, gtk_widget_show (bsp->brush_preview); } else - gtk_widget_hide (bsp->brush_popup); + { + gtk_widget_hide (bsp->brush_popup); + } + /* decide where to put the popup */ gdk_window_get_origin (bsp->preview->window, &x_org, &y_org); scr_w = gdk_screen_width (); scr_h = gdk_screen_height (); @@ -356,6 +360,7 @@ brush_popup_open (BrushSelectP bsp, gtk_preview_size (GTK_PREVIEW (bsp->brush_preview), brush->mask->width, brush->mask->height); gtk_widget_popup (bsp->brush_popup, x, y); + /* Draw the brush */ buf = g_new (gchar, brush->mask->width); src = temp_buf_data (brush->mask); @@ -371,6 +376,8 @@ brush_popup_open (BrushSelectP bsp, gtk_preview_draw_row (GTK_PREVIEW (bsp->brush_preview), buf, 0, y, brush->mask->width); src += brush->mask->width; } + g_free(buf); + /* Draw the brush preview */ gtk_widget_draw (bsp->brush_preview, NULL); } diff --git a/app/gui/brush-select.c b/app/gui/brush-select.c index 043f28c36f..bd88e15f37 100644 --- a/app/gui/brush-select.c +++ b/app/gui/brush-select.c @@ -326,6 +326,7 @@ brush_popup_open (BrushSelectP bsp, gint scr_w, scr_h; gchar *src, *buf; + /* make sure the popup exists and is not visible */ if (bsp->brush_popup == NULL) { GtkWidget *frame; @@ -342,8 +343,11 @@ brush_popup_open (BrushSelectP bsp, gtk_widget_show (bsp->brush_preview); } else - gtk_widget_hide (bsp->brush_popup); + { + gtk_widget_hide (bsp->brush_popup); + } + /* decide where to put the popup */ gdk_window_get_origin (bsp->preview->window, &x_org, &y_org); scr_w = gdk_screen_width (); scr_h = gdk_screen_height (); @@ -356,6 +360,7 @@ brush_popup_open (BrushSelectP bsp, gtk_preview_size (GTK_PREVIEW (bsp->brush_preview), brush->mask->width, brush->mask->height); gtk_widget_popup (bsp->brush_popup, x, y); + /* Draw the brush */ buf = g_new (gchar, brush->mask->width); src = temp_buf_data (brush->mask); @@ -371,6 +376,8 @@ brush_popup_open (BrushSelectP bsp, gtk_preview_draw_row (GTK_PREVIEW (bsp->brush_preview), buf, 0, y, brush->mask->width); src += brush->mask->width; } + g_free(buf); + /* Draw the brush preview */ gtk_widget_draw (bsp->brush_preview, NULL); } diff --git a/app/gui/pattern-select.c b/app/gui/pattern-select.c index b8343d09c5..f2bea8bd9c 100644 --- a/app/gui/pattern-select.c +++ b/app/gui/pattern-select.c @@ -215,6 +215,8 @@ pattern_popup_open (PatternSelectP psp, gint x_org, y_org; gint scr_w, scr_h; gchar *src, *buf; + + /* make sure the popup exists and is not visible */ if (psp->pattern_popup == NULL) { GtkWidget *frame; @@ -229,7 +231,11 @@ pattern_popup_open (PatternSelectP psp, gtk_widget_show (psp->pattern_preview); } else - gtk_widget_hide (psp->pattern_popup); + { + gtk_widget_hide (psp->pattern_popup); + } + + /* decide where to put the popup */ gdk_window_get_origin (psp->preview->window, &x_org, &y_org); scr_w = gdk_screen_width (); scr_h = gdk_screen_height (); @@ -241,6 +247,7 @@ pattern_popup_open (PatternSelectP psp, y = (y + pattern->mask->height > scr_h) ? scr_h - pattern->mask->height : y; gtk_preview_size (GTK_PREVIEW (psp->pattern_preview), pattern->mask->width, pattern->mask->height); gtk_widget_popup (psp->pattern_popup, x, y); + /* Draw the pattern */ buf = g_new (gchar, pattern->mask->width * 3); src = temp_buf_data (pattern->mask); @@ -263,15 +270,19 @@ pattern_popup_open (PatternSelectP psp, gtk_preview_draw_row (GTK_PREVIEW (psp->pattern_preview), buf, 0, y, pattern->mask->width); src += pattern->mask->width * pattern->mask->bytes; } + g_free(buf); + /* Draw the pattern preview */ gtk_widget_draw (psp->pattern_preview, NULL); } + static void pattern_popup_close (PatternSelectP psp) { if (psp->pattern_popup != NULL) gtk_widget_hide (psp->pattern_popup); } + static void display_pattern (PatternSelectP psp, GPatternP pattern, diff --git a/app/pattern_select.c b/app/pattern_select.c index b8343d09c5..f2bea8bd9c 100644 --- a/app/pattern_select.c +++ b/app/pattern_select.c @@ -215,6 +215,8 @@ pattern_popup_open (PatternSelectP psp, gint x_org, y_org; gint scr_w, scr_h; gchar *src, *buf; + + /* make sure the popup exists and is not visible */ if (psp->pattern_popup == NULL) { GtkWidget *frame; @@ -229,7 +231,11 @@ pattern_popup_open (PatternSelectP psp, gtk_widget_show (psp->pattern_preview); } else - gtk_widget_hide (psp->pattern_popup); + { + gtk_widget_hide (psp->pattern_popup); + } + + /* decide where to put the popup */ gdk_window_get_origin (psp->preview->window, &x_org, &y_org); scr_w = gdk_screen_width (); scr_h = gdk_screen_height (); @@ -241,6 +247,7 @@ pattern_popup_open (PatternSelectP psp, y = (y + pattern->mask->height > scr_h) ? scr_h - pattern->mask->height : y; gtk_preview_size (GTK_PREVIEW (psp->pattern_preview), pattern->mask->width, pattern->mask->height); gtk_widget_popup (psp->pattern_popup, x, y); + /* Draw the pattern */ buf = g_new (gchar, pattern->mask->width * 3); src = temp_buf_data (pattern->mask); @@ -263,15 +270,19 @@ pattern_popup_open (PatternSelectP psp, gtk_preview_draw_row (GTK_PREVIEW (psp->pattern_preview), buf, 0, y, pattern->mask->width); src += pattern->mask->width * pattern->mask->bytes; } + g_free(buf); + /* Draw the pattern preview */ gtk_widget_draw (psp->pattern_preview, NULL); } + static void pattern_popup_close (PatternSelectP psp) { if (psp->pattern_popup != NULL) gtk_widget_hide (psp->pattern_popup); } + static void display_pattern (PatternSelectP psp, GPatternP pattern,