summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorNathan Lee <2431820-nathanal@users.noreply.gitlab.com>2019-10-10 11:05:48 +0000
committerNathan Lee <2431820-nathanal@users.noreply.gitlab.com>2019-10-11 11:21:28 +0000
commit487f0940377b4fbf9ebae8ab2a53f2f992e60deb (patch)
tree00ffcad1a7ebd3d958ec76f117f4e67457c4caed /src/widgets
parentRemove warnings of unhandled items on Mac check menu items, thanks to Nathan ... (diff)
downloadinkscape-487f0940377b4fbf9ebae8ab2a53f2f992e60deb.tar.gz
inkscape-487f0940377b4fbf9ebae8ab2a53f2f992e60deb.zip
Reduce memory leak on editing text, etc.
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/paint-selector.cpp23
-rw-r--r--src/widgets/toolbox.cpp4
2 files changed, 20 insertions, 7 deletions
diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp
index e1a6c2b5b..e80951928 100644
--- a/src/widgets/paint-selector.cpp
+++ b/src/widgets/paint-selector.cpp
@@ -963,6 +963,8 @@ void SPPaintSelector::updateMeshList( SPMeshGradient *mesh )
gtk_tree_model_get (store, &iter, COMBO_COL_MESH, &meshid, -1);
while (valid && strcmp(meshid, meshname) != 0) {
valid = gtk_tree_model_iter_next (store, &iter);
+ g_free(meshid);
+ meshid = nullptr;
gtk_tree_model_get (store, &iter, COMBO_COL_MESH, &meshid, -1);
}
@@ -971,6 +973,7 @@ void SPPaintSelector::updateMeshList( SPMeshGradient *mesh )
}
g_object_set_data(G_OBJECT(combo), "update", GINT_TO_POINTER(FALSE));
+ g_free(meshid);
}
}
@@ -1068,9 +1071,11 @@ SPMeshGradient *SPPaintSelector::getMeshGradient()
gchar *meshid = nullptr;
gboolean stockid = FALSE;
- gchar *label = nullptr;
- gtk_tree_model_get (store, &iter, COMBO_COL_LABEL, &label, COMBO_COL_STOCK, &stockid, COMBO_COL_MESH, &meshid, -1);
+ // gchar *label = nullptr;
+ gtk_tree_model_get (store, &iter, COMBO_COL_STOCK, &stockid, COMBO_COL_MESH, &meshid, -1);
+ // gtk_tree_model_get (store, &iter, COMBO_COL_LABEL, &label, COMBO_COL_STOCK, &stockid, COMBO_COL_MESH, &meshid, -1);
// std::cout << " .. meshid: " << (meshid?meshid:"null") << " label: " << (label?label:"null") << std::endl;
+ // g_free(label);
if (meshid == nullptr) {
return nullptr;
}
@@ -1090,11 +1095,12 @@ SPMeshGradient *SPPaintSelector::getMeshGradient()
mesh = SP_MESHGRADIENT(mesh_obj);
}
g_free(mesh_name);
-
} else {
std::cerr << "SPPaintSelector::getMeshGradient: Unexpected meshid value." << std::endl;
}
+ g_free(meshid);
+
return mesh;
}
@@ -1298,8 +1304,11 @@ void SPPaintSelector::updatePatternList( SPPattern *pattern )
gtk_tree_model_get (store, &iter, COMBO_COL_PATTERN, &patid, -1);
while (valid && strcmp(patid, patname) != 0) {
valid = gtk_tree_model_iter_next (store, &iter);
+ g_free(patid);
+ patid = nullptr;
gtk_tree_model_get (store, &iter, COMBO_COL_PATTERN, &patid, -1);
}
+ g_free(patid);
if (valid) {
gtk_combo_box_set_active_iter(GTK_COMBO_BOX(combo), &iter);
@@ -1433,12 +1442,12 @@ SPPattern *SPPaintSelector::getPattern()
gchar *patid = nullptr;
gboolean stockid = FALSE;
- gchar *label = nullptr;
+ // gchar *label = nullptr;
gtk_tree_model_get(store, &iter,
- COMBO_COL_LABEL, &label,
+ // COMBO_COL_LABEL, &label,
COMBO_COL_STOCK, &stockid,
COMBO_COL_PATTERN, &patid, -1);
-
+ // g_free(label);
if (patid == nullptr) {
return nullptr;
}
@@ -1465,6 +1474,8 @@ SPPattern *SPPaintSelector::getPattern()
}
}
+ g_free(patid);
+
return pat;
}
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index fc5bad47a..365c0a76f 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -727,7 +727,9 @@ void update_aux_toolbox(SPDesktop * /*desktop*/, ToolBase *eventcontext, GtkWidg
gchar const *tname = ( eventcontext
? eventcontext->getPrefsPath().c_str() //g_type_name(G_OBJECT_TYPE(eventcontext))
: nullptr );
- GtkWidget *stack = (GtkWidget *)gtk_container_get_children((GtkContainer *)toolbox)->data;
+ GList *list = gtk_container_get_children((GtkContainer *)toolbox);
+ GtkWidget *stack = (GtkWidget *)list->data;
+ g_list_free(list);
gtk_stack_set_visible_child_name((GtkStack *)stack, tname);
}