aboutsummaryrefslogtreecommitdiffstats
path: root/ui/preference_utils.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-12-22 15:12:27 -0500
committerMichael Mann <mmann78@netscape.net>2017-01-07 00:44:10 +0000
commit6a6d7ea34f43515dfe3f52aa96b943c272c925a7 (patch)
treedbf89a2226861fa855cc04d80607c56f7268e51b /ui/preference_utils.c
parent29a7fce2720288c86e474f68880a0e61e517027b (diff)
Convert range API to always use wmem memory.
This is mostly to address memory leaks in range preferences (the biggest user of range functionality) on shutdown. Now range preferences must use epan scoped memory when referencing internal preference structures to keep consistency. Change-Id: Idc644f59b5b42fa1d46891542b53ff13ea754157 Reviewed-on: https://code.wireshark.org/review/19387 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/preference_utils.c')
-rw-r--r--ui/preference_utils.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/ui/preference_utils.c b/ui/preference_utils.c
index 63fc756410..a9cfac2f05 100644
--- a/ui/preference_utils.c
+++ b/ui/preference_utils.c
@@ -70,8 +70,8 @@ pref_stash(pref_t *pref, gpointer unused _U_)
case PREF_DECODE_AS_RANGE:
case PREF_RANGE:
- g_free(pref->stashed_val.range);
- pref->stashed_val.range = range_copy(*pref->varp.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
+ pref->stashed_val.range = range_copy(wmem_epan_scope(), *pref->varp.range);
break;
case PREF_COLOR:
@@ -179,8 +179,8 @@ pref_unstash(pref_t *pref, gpointer unstash_data_p)
}
}
- g_free(*pref->varp.range);
- *pref->varp.range = range_copy(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
+ *pref->varp.range = range_copy(wmem_epan_scope(), pref->stashed_val.range);
if (unstash_data->handle_decode_as) {
if ((sub_dissectors != NULL) && (handle != NULL)) {
@@ -204,8 +204,8 @@ pref_unstash(pref_t *pref, gpointer unstash_data_p)
case PREF_RANGE:
if (!ranges_are_equal(*pref->varp.range, pref->stashed_val.range)) {
unstash_data->module->prefs_changed = TRUE;
- g_free(*pref->varp.range);
- *pref->varp.range = range_copy(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), *pref->varp.range);
+ *pref->varp.range = range_copy(wmem_epan_scope(), pref->stashed_val.range);
}
break;
@@ -254,8 +254,8 @@ reset_stashed_pref(pref_t *pref) {
case PREF_DECODE_AS_RANGE:
case PREF_RANGE:
- g_free(pref->stashed_val.range);
- pref->stashed_val.range = range_copy(pref->default_val.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
+ pref->stashed_val.range = range_copy(wmem_epan_scope(), pref->default_val.range);
break;
case PREF_COLOR:
@@ -300,7 +300,7 @@ pref_clean_stash(pref_t *pref, gpointer unused _U_)
case PREF_DECODE_AS_RANGE:
case PREF_RANGE:
if (pref->stashed_val.range != NULL) {
- g_free(pref->stashed_val.range);
+ wmem_free(wmem_epan_scope(), pref->stashed_val.range);
pref->stashed_val.range = NULL;
}
break;