diff options
| author | Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> | 2019-10-10 11:05:48 +0000 |
|---|---|---|
| committer | Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> | 2019-10-11 11:21:28 +0000 |
| commit | 487f0940377b4fbf9ebae8ab2a53f2f992e60deb (patch) | |
| tree | 00ffcad1a7ebd3d958ec76f117f4e67457c4caed /src/widgets | |
| parent | Remove warnings of unhandled items on Mac check menu items, thanks to Nathan ... (diff) | |
| download | inkscape-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.cpp | 23 | ||||
| -rw-r--r-- | src/widgets/toolbox.cpp | 4 |
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); } |
