diff options
author | Michael Mann <mmann78@netscape.net> | 2016-12-22 15:12:27 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-01-07 00:44:10 +0000 |
commit | 6a6d7ea34f43515dfe3f52aa96b943c272c925a7 (patch) | |
tree | dbf89a2226861fa855cc04d80607c56f7268e51b /ui/qt/preference_editor_frame.cpp | |
parent | 29a7fce2720288c86e474f68880a0e61e517027b (diff) | |
download | wireshark-6a6d7ea34f43515dfe3f52aa96b943c272c925a7.tar.gz |
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/qt/preference_editor_frame.cpp')
-rw-r--r-- | ui/qt/preference_editor_frame.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/ui/qt/preference_editor_frame.cpp b/ui/qt/preference_editor_frame.cpp index c9a2f5c52f..845920680e 100644 --- a/ui/qt/preference_editor_frame.cpp +++ b/ui/qt/preference_editor_frame.cpp @@ -108,8 +108,8 @@ void PreferenceEditorFrame::editPreference(preference *pref, pref_module *module show = true; break; case PREF_RANGE: - g_free(new_range_); - new_range_ = range_copy(pref->stashed_val.range); + wmem_free(NULL, new_range_); + new_range_ = range_copy(NULL, pref->stashed_val.range); connect(ui->preferenceLineEdit, SIGNAL(textEdited(QString)), this, SLOT(rangeLineEditTextEdited(QString))); show = true; @@ -154,8 +154,8 @@ void PreferenceEditorFrame::rangeLineEditTextEdited(const QString &new_str) { range_t *new_range = NULL; - convert_ret_t ret = range_convert_str(&new_range, new_str.toUtf8().constData(), pref_->info.max_value); - g_free(new_range_); + convert_ret_t ret = range_convert_str(NULL, &new_range, new_str.toUtf8().constData(), pref_->info.max_value); + wmem_free(NULL, new_range_); new_range_ = new_range; if (ret == CVT_NO_ERROR) { @@ -204,8 +204,8 @@ void PreferenceEditorFrame::on_buttonBox_accepted() break; case PREF_RANGE: if (!ranges_are_equal(pref_->stashed_val.range, new_range_)) { - g_free(pref_->stashed_val.range); - pref_->stashed_val.range = range_copy(new_range_); + wmem_free(wmem_epan_scope(), pref_->stashed_val.range); + pref_->stashed_val.range = range_copy(wmem_epan_scope(), new_range_); apply = true; } break; @@ -245,7 +245,7 @@ void PreferenceEditorFrame::on_buttonBox_rejected() { pref_ = NULL; module_ = NULL; - g_free(new_range_); + wmem_free(NULL, new_range_); new_range_ = NULL; ui->preferenceLineEdit->clear(); animatedHide(); |