diff options
-rw-r--r-- | common/resourceaccess.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/common/resourceaccess.cpp b/common/resourceaccess.cpp index 84c5dcb..c05d06c 100644 --- a/common/resourceaccess.cpp +++ b/common/resourceaccess.cpp | |||
@@ -421,10 +421,12 @@ bool ResourceAccess::processMessageBuffer() | |||
421 | 421 | ||
422 | void ResourceAccess::callCallbacks(int id) | 422 | void ResourceAccess::callCallbacks(int id) |
423 | { | 423 | { |
424 | for(auto handler : d->resultHandler.values(id)) { | 424 | //We remove the callbacks first because the handler can kill resourceaccess directly |
425 | const auto callbacks = d->resultHandler.values(id); | ||
426 | d->resultHandler.remove(id); | ||
427 | for(auto handler : callbacks) { | ||
425 | handler(0, QString()); | 428 | handler(0, QString()); |
426 | } | 429 | } |
427 | d->resultHandler.remove(id); | ||
428 | } | 430 | } |
429 | 431 | ||
430 | void ResourceAccess::log(const QString &message) | 432 | void ResourceAccess::log(const QString &message) |