diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2019-11-04 10:52:25 +0100 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2019-11-05 15:21:30 +0000 |
commit | 499d912f4b12c8121979f44b1a8b7551c17ee76b (patch) | |
tree | d9cdd567f7bca81b35b9515f483edf7bd99a1f2e /ui/qt/funnel_string_dialog.cpp | |
parent | b01f0febe2b2f57bae5320e8341232ffd0474e44 (diff) |
funnel: Free callback data
Free allocated callback data in FunnelStringDialog, TextWindow and
registered menu items. Also free strings used in FunnelStringDialog.
Bug: 16177
Change-Id: I9a129b8975a55d1dc89fe851116feebe82763bca
Reviewed-on: https://code.wireshark.org/review/34945
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'ui/qt/funnel_string_dialog.cpp')
-rw-r--r-- | ui/qt/funnel_string_dialog.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ui/qt/funnel_string_dialog.cpp b/ui/qt/funnel_string_dialog.cpp index affc5e8bca..58912c139a 100644 --- a/ui/qt/funnel_string_dialog.cpp +++ b/ui/qt/funnel_string_dialog.cpp @@ -20,11 +20,13 @@ static FunnelStringDialogHelper dialogHelper; const int min_edit_width_ = 20; // em widths -FunnelStringDialog::FunnelStringDialog(const QString title, const QStringList field_name_list, funnel_dlg_cb_t dialog_cb, void *dialog_cb_data) : +FunnelStringDialog::FunnelStringDialog(const QString title, const QStringList field_name_list, funnel_dlg_cb_t dialog_cb, void *dialog_cb_data, + funnel_dlg_cb_data_free_t dialog_data_free_cb) : QDialog(NULL), ui(new Ui::FunnelStringDialog), dialog_cb_(dialog_cb), - dialog_cb_data_(dialog_cb_data) + dialog_cb_data_(dialog_cb_data), + dialog_cb_data_free_(dialog_data_free_cb) { ui->setupUi(this); setWindowTitle(wsApp->windowTitleString(title)); @@ -44,6 +46,10 @@ FunnelStringDialog::FunnelStringDialog(const QString title, const QStringList fi FunnelStringDialog::~FunnelStringDialog() { + if (dialog_cb_data_free_) { + dialog_cb_data_free_(dialog_cb_data_); + } + delete ui; } @@ -78,9 +84,9 @@ void FunnelStringDialog::on_buttonBox_accepted() dialog_cb_(user_input, dialog_cb_data_); } -void FunnelStringDialog::stringDialogNew(const QString title, const QStringList field_name_list, funnel_dlg_cb_t dialog_cb, void *dialog_cb_data) +void FunnelStringDialog::stringDialogNew(const QString title, const QStringList field_name_list, funnel_dlg_cb_t dialog_cb, void *dialog_cb_data, funnel_dlg_cb_data_free_t dialog_cb_data_free) { - FunnelStringDialog *fsd = new FunnelStringDialog(title, field_name_list, dialog_cb, dialog_cb_data); + FunnelStringDialog *fsd = new FunnelStringDialog(title, field_name_list, dialog_cb, dialog_cb_data, dialog_cb_data_free); connect(&dialogHelper, SIGNAL(closeDialogs()), fsd, SLOT(close())); fsd->show(); } @@ -90,13 +96,13 @@ void FunnelStringDialogHelper::emitCloseDialogs() emit closeDialogs(); } -void string_dialog_new(const gchar *title, const gchar **fieldnames, funnel_dlg_cb_t dialog_cb, void *dialog_cb_data) +void string_dialog_new(const gchar *title, const gchar **fieldnames, funnel_dlg_cb_t dialog_cb, void *dialog_cb_data, funnel_dlg_cb_data_free_t dialog_cb_data_free) { QStringList field_name_list; for (int i = 0; fieldnames[i]; i++) { field_name_list << fieldnames[i]; } - FunnelStringDialog::stringDialogNew(title, field_name_list, dialog_cb, dialog_cb_data); + FunnelStringDialog::stringDialogNew(title, field_name_list, dialog_cb, dialog_cb_data, dialog_cb_data_free); } void string_dialogs_close(void) |