summaryrefslogtreecommitdiff
path: root/ui/qt/wireshark_application.cpp
diff options
context:
space:
mode:
authorMichal Labedzki <michal.labedzki@tieto.com>2015-03-16 14:51:44 +0100
committerAnders Broman <a.broman58@gmail.com>2015-03-18 08:51:55 +0000
commite6f3da96f8976c2808bd9973b420a76ecfca08f4 (patch)
tree2d5a3fae9f277fbd5a908a8f6d6d826b567798b8 /ui/qt/wireshark_application.cpp
parentdfc0689205e6ce0f3ca004a119c51efb80d8cdbb (diff)
downloadwireshark-e6f3da96f8976c2808bd9973b420a76ecfca08f4.tar.gz
Qt: Fix recent files threads
Fix crash and memory leak. Please not that Recent File Status objects and threads still continously grow and shrink memory usage, but do not grow continuously. Bug: 10893 Change-Id: Icc8b7fefd6572b902ac81d22e5f7b16e304fcf16 Reviewed-on: https://code.wireshark.org/review/7699 Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com> Reviewed-by: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui/qt/wireshark_application.cpp')
-rw-r--r--ui/qt/wireshark_application.cpp15
1 files changed, 1 insertions, 14 deletions
diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp
index b3a98f4455..efe8f0e976 100644
--- a/ui/qt/wireshark_application.cpp
+++ b/ui/qt/wireshark_application.cpp
@@ -179,26 +179,18 @@ extern "C" void menu_recent_file_write_all(FILE *rf) {
void WiresharkApplication::refreshRecentFiles(void) {
recent_item_status *ri;
RecentFileStatus *rf_status;
- QThread *rf_thread;
foreach (ri, recent_items_) {
if (ri->in_thread) {
continue;
}
- rf_thread = new QThread;
rf_status = new RecentFileStatus(ri->filename);
- rf_status->moveToThread(rf_thread);
-
- connect(rf_thread, SIGNAL(started()), rf_status, SLOT(start()));
-
connect(rf_status, SIGNAL(statusFound(QString, qint64, bool)),
this, SLOT(itemStatusFinished(QString, qint64, bool)), Qt::QueuedConnection);
- connect(rf_status, SIGNAL(finished()), rf_thread, SLOT(quit()));
connect(rf_status, SIGNAL(finished()), rf_status, SLOT(deleteLater()));
-
- rf_thread->start();
+ rf_status->start();
}
}
@@ -465,7 +457,6 @@ void WiresharkApplication::cleanup()
void WiresharkApplication::itemStatusFinished(const QString filename, qint64 size, bool accessible) {
recent_item_status *ri;
- RecentFileStatus *rf_status = qobject_cast<RecentFileStatus *>(QObject::sender());
foreach (ri, recent_items_) {
if (filename == ri->filename && (size != ri->size || accessible != ri->accessible)) {
@@ -476,10 +467,6 @@ void WiresharkApplication::itemStatusFinished(const QString filename, qint64 siz
emit updateRecentItemStatus(filename, size, accessible);
}
}
-
- if (rf_status) {
- rf_status->quit();
- }
}
WiresharkApplication::WiresharkApplication(int &argc, char **argv) :