[goffice] Graphs: plug leak.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [goffice] Graphs: plug leak.
- Date: Tue, 18 Mar 2014 01:05:13 +0000 (UTC)
commit f207c58806e997ee2eff9d27ace19ec44951c2cb
Author: Morten Welinder <terra gnome org>
Date: Mon Mar 17 21:04:53 2014 -0400
Graphs: plug leak.
ChangeLog | 4 ++++
NEWS | 2 +-
goffice/graph/gog-child-button.c | 25 ++++++++++++++-----------
3 files changed, 19 insertions(+), 12 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index c07f0b1..f1c47fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2014-03-17 Morten Welinder <terra gnome org>
+ * goffice/graph/gog-child-button.c
+ (build_addition_process_children): Renamed from
+ build_addition_process_childs. Plug leak.
+
* goffice/canvas/goc-canvas.c (goc_canvas_dispose): Dispose of
->root instead of simply clearing it.
diff --git a/NEWS b/NEWS
index 241f98b..6f485d8 100644
--- a/NEWS
+++ b/NEWS
@@ -14,7 +14,7 @@ Julian Sikorski:
Morten:
* Fix problem saving print settings. [#698630]
- * Plug leak.
+ * Plug leaks.
* Fix FMW problem with GocPolyline/GocPolygon.
--------------------------------------------------------------------------
diff --git a/goffice/graph/gog-child-button.c b/goffice/graph/gog-child-button.c
index 3a947d2..ac6d328 100644
--- a/goffice/graph/gog-child-button.c
+++ b/goffice/graph/gog-child-button.c
@@ -150,18 +150,16 @@ typedef struct {
} BuildAdditionData;
static void
-build_addition_process_childs (GogObject *object, BuildAdditionData *closure)
+build_addition_process_children (GogObject *object, BuildAdditionData *closure)
{
- GogObjectRole *role;
- Addition *addition;
- GSList *child_iter;
GSList *role_iter;
GSList *additions;
additions = gog_object_possible_additions (object);
for (role_iter = additions; role_iter != NULL; role_iter = role_iter->next) {
- role = role_iter->data;
- addition = g_hash_table_lookup (closure->additions, role->id);
+ GogObjectRole *role = role_iter->data;
+ Addition *addition =
+ g_hash_table_lookup (closure->additions, role->id);
if ( addition == NULL) {
addition = g_new (Addition, 1);
addition->role = role;
@@ -177,10 +175,15 @@ build_addition_process_childs (GogObject *object, BuildAdditionData *closure)
} else if (addition->parent != closure->child_button->object)
addition->parent = NULL;
}
-
- if (!GOG_IS_GRAPH (object))
- for (child_iter = object->children; child_iter != NULL; child_iter = child_iter->next)
- build_addition_process_childs (child_iter->data, closure);
+ g_slist_free (additions);
+
+ if (!GOG_IS_GRAPH (object)) {
+ GSList *child_iter;
+ for (child_iter = object->children;
+ child_iter;
+ child_iter = child_iter->next)
+ build_addition_process_children (child_iter->data, closure);
+ }
}
static void
@@ -222,7 +225,7 @@ gog_child_button_build_additions (GogChildButton *child_button)
start_object = start_object->parent);
if (start_object != NULL) {
- build_addition_process_childs (start_object, &closure);
+ build_addition_process_children (start_object, &closure);
g_hash_table_foreach (closure.additions,
(GHFunc) build_addition_foreach,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]