diff options
author | Michal Labedzki <michal.labedzki@tieto.com> | 2015-03-16 14:51:44 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-03-18 08:51:55 +0000 |
commit | e6f3da96f8976c2808bd9973b420a76ecfca08f4 (patch) | |
tree | 2d5a3fae9f277fbd5a908a8f6d6d826b567798b8 /ui/qt/wireshark_application.cpp | |
parent | dfc0689205e6ce0f3ca004a119c51efb80d8cdbb (diff) | |
download | wireshark-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.cpp | 15 |
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) : |