[gnumeric] GUI: Fix allocate-free mismatch in sheet management dialog.



commit 5631d4bf2095e17b21fc73c5676b13532a6aa38d
Author: Morten Welinder <terra gnome org>
Date:   Sat Jan 7 11:50:04 2012 -0500

    GUI: Fix allocate-free mismatch in sheet management dialog.
    
    Allocated as GdkRGBA, freed as GdkColor.

 NEWS                             |    1 +
 src/dialogs/ChangeLog            |    5 +++++
 src/dialogs/dialog-sheet-order.c |   25 +++++++++++++------------
 3 files changed, 19 insertions(+), 12 deletions(-)
---
diff --git a/NEWS b/NEWS
index 5f378b6..841a217 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,7 @@ Morten:
 	* Fix auto-expression of single cell when moved.
 	* Fix problems with underlines and rotated cells.  [#667152]
 	* Fix multihead problem with auto-expressions.
+	* Fix allocate-free mismatch in sheet management dialog.
 
 --------------------------------------------------------------------------
 Gnumeric 1.11.1
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index cc4eee8..d56bb11 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-07  Morten Welinder  <terra gnome org>
+
+	* dialog-sheet-order.c (dialog_sheet_order_update_sheet_order):
+	Fix allocate-free mismatch problem.
+
 2012-01-06  Jean Brefort  <jean brefort normalesup org>
 
 	* dialog-stf-export.c (stf_export_dialog_format_page_init),
diff --git a/src/dialogs/dialog-sheet-order.c b/src/dialogs/dialog-sheet-order.c
index 83af954..f369a44 100644
--- a/src/dialogs/dialog-sheet-order.c
+++ b/src/dialogs/dialog-sheet-order.c
@@ -1226,19 +1226,11 @@ cb_sheet_order_destroy (SheetManager *state)
 static void
 dialog_sheet_order_update_sheet_order (SheetManager *state)
 {
-	gchar *name, *new_name;
-	gboolean is_locked;
-	gboolean is_visible;
-	gboolean is_rtl;
-	int row_max, col_max;
-	GdkColor *back, *fore;
 	GtkTreeIter iter;
 	Workbook *wb = wb_control_get_workbook (WORKBOOK_CONTROL (state->wbcg));
-	gint i, j, n_sheets, n_children;
+	int i, n_sheets, n_children;
 	GtkTreeModel *model = GTK_TREE_MODEL (state->model);
-	Sheet *sheet_wb, *sheet_model;
 	GtkTreeSelection *sel = gtk_tree_view_get_selection (state->sheet_list);
-	gboolean selected;
 
 	n_sheets = workbook_sheet_count (wb);
 	n_children = gtk_tree_model_iter_n_children (model, NULL);
@@ -1250,7 +1242,16 @@ dialog_sheet_order_update_sheet_order (SheetManager *state)
 	}
 
 	for (i = 0; i < n_sheets; i++) {
-		sheet_wb = workbook_sheet_by_index (wb, i);
+		gchar *name, *new_name;
+		gboolean is_locked;
+		gboolean is_visible;
+		gboolean is_rtl;
+		GdkRGBA *back, *fore;
+		Sheet *sheet_wb = workbook_sheet_by_index (wb, i);
+		Sheet *sheet_model;
+		gboolean selected;
+		int j, row_max, col_max;
+
 		for (j = i; j < n_children; j++) {
 			if (!gtk_tree_model_iter_nth_child (model, &iter,
 							    NULL, j))
@@ -1301,9 +1302,9 @@ dialog_sheet_order_update_sheet_order (SheetManager *state)
 					    is_rtl ? state->image_rtl : state->image_ltr,
 				    -1);
 		if (back)
-			gdk_color_free (back);
+			gdk_rgba_free (back);
 		if (fore)
-			gdk_color_free (fore);
+			gdk_rgba_free (fore);
 		g_free (name);
 		g_free (new_name);
 		if (selected)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]