Qt: fix crash when double clicking on a row in 'Decode As' dialog

No need to register for the destroyed() signal: it is emitted after the new
QComboBox object is created and resetting pointers to NULL is useless as they
are locals initialized in the constructor

Bug: 11532
Change-Id: Ie707cafa370053df846a4732aed20c182e030c40
Reviewed-on: https://code.wireshark.org/review/10792
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
Pascal Quantin 2015-10-05 08:01:44 +02:00 committed by Gerald Combs
parent a459ac72a2
commit 3f56b5e6b9
2 changed files with 2 additions and 22 deletions

View File

@ -74,7 +74,8 @@ DecodeAsDialog::DecodeAsDialog(QWidget *parent, capture_file *cf, bool create_ne
ui(new Ui::DecodeAsDialog),
cap_file_(cf),
table_names_combo_box_(NULL),
selector_combo_box_(NULL)
selector_combo_box_(NULL),
cur_proto_combo_box_(NULL)
{
ui->setupUi(this);
setWindowTitle(wsApp->windowTitleString(tr("Decode As" UTF8_HORIZONTAL_ELLIPSIS)));
@ -268,7 +269,6 @@ void DecodeAsDialog::on_decodeAsTreeWidget_itemActivated(QTreeWidgetItem *item,
selector_combo_box_->setEditable(true);
selector_combo_box_->lineEdit()->setText(item->text(selector_col_));
connect(selector_combo_box_, SIGNAL(destroyed()), this, SLOT(selectorDestroyed()));
connect(selector_combo_box_, SIGNAL(editTextChanged(QString)), this, SLOT(selectorEditTextChanged(QString)));
ui->decodeAsTreeWidget->setItemWidget(item, selector_col_, selector_combo_box_);
@ -278,14 +278,12 @@ void DecodeAsDialog::on_decodeAsTreeWidget_itemActivated(QTreeWidgetItem *item,
ui->decodeAsTreeWidget->setItemWidget(item, proto_col_, cur_proto_combo_box_);
connect(cur_proto_combo_box_, SIGNAL(currentIndexChanged(const QString &)),
this, SLOT(curProtoCurrentIndexChanged(const QString &)));
connect(cur_proto_combo_box_, SIGNAL(destroyed()), this, SLOT(curProtoDestroyed()));
table_names_combo_box_->setCurrentIndex(table_names_combo_box_->findText(current_text));
tableNamesCurrentIndexChanged(current_text);
connect(table_names_combo_box_, SIGNAL(currentIndexChanged(const QString &)),
this, SLOT(tableNamesCurrentIndexChanged(const QString &)));
connect(table_names_combo_box_, SIGNAL(destroyed()), this, SLOT(tableNamesDestroyed()));
table_names_combo_box_->setFocus();
}
@ -406,11 +404,6 @@ void DecodeAsDialog::on_copyToolButton_clicked()
addRecord(true);
}
void DecodeAsDialog::tableNamesDestroyed()
{
table_names_combo_box_ = NULL;
}
void DecodeAsDialog::decodeAddProtocol(const gchar *, const gchar *proto_name, gpointer value, gpointer user_data)
{
QSet<dissector_info_t *> *dissector_info_set = (QSet<dissector_info_t *> *)user_data;
@ -495,11 +488,6 @@ void DecodeAsDialog::tableNamesCurrentIndexChanged(const QString &text)
cur_proto_combo_box_->setCurrentIndex(cur_proto_combo_box_->findText(current_text));
}
void DecodeAsDialog::selectorDestroyed()
{
selector_combo_box_ = NULL;
}
void DecodeAsDialog::selectorEditTextChanged(const QString &text)
{
QTreeWidgetItem *item = ui->decodeAsTreeWidget->currentItem();
@ -533,11 +521,6 @@ void DecodeAsDialog::curProtoCurrentIndexChanged(const QString &text)
item->setData(proto_col_, Qt::UserRole, cur_proto_combo_box_->itemData(cur_proto_combo_box_->findText(text)));
}
void DecodeAsDialog::curProtoDestroyed()
{
cur_proto_combo_box_ = NULL;
}
typedef QPair<const char *, guint32> UintPair;
typedef QPair<const char *, const char *> CharPtrPair;

View File

@ -82,12 +82,9 @@ private slots:
void on_deleteToolButton_clicked();
void on_copyToolButton_clicked();
void tableNamesDestroyed();
void tableNamesCurrentIndexChanged(const QString & text);
void selectorDestroyed();
void selectorEditTextChanged(const QString & text);
void curProtoCurrentIndexChanged(const QString & text);
void curProtoDestroyed();
void applyChanges();
void on_buttonBox_clicked(QAbstractButton *button);
};