diff options
author | Christian Kandeler <[email protected]> | 2018-12-13 14:32:46 +0100 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2018-12-14 08:44:03 +0000 |
commit | e3026623a3682cad7d89d97876cb3dd5b6d9de7e (patch) | |
tree | bb8e7b4ff077a24105c59d21b8f3b54afaa31c27 /src/libs/utils/filesystemwatcher.cpp | |
parent | 0ea3346d68890beed136bdce67ecf9cf0b4bb3b3 (diff) |
FileSystemWatcher: Prevent double-delete of static data
If any static data directly or indirectly holds a FileSystemWatcher,
destruction of that data competes with the destruction of
FileSystemWatcher's static data. Prevent this by guarding the access to
said static data in FileSystemWatcher's destructor.
Change-Id: I4def4cab36583249b0c512387e57400f532b6709
Reviewed-by: Friedemann Kleint <[email protected]>
Reviewed-by: Eike Ziller <[email protected]>
Diffstat (limited to 'src/libs/utils/filesystemwatcher.cpp')
-rw-r--r-- | src/libs/utils/filesystemwatcher.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libs/utils/filesystemwatcher.cpp b/src/libs/utils/filesystemwatcher.cpp index 43044418325..bf29466c070 100644 --- a/src/libs/utils/filesystemwatcher.cpp +++ b/src/libs/utils/filesystemwatcher.cpp @@ -206,7 +206,7 @@ FileSystemWatcher::~FileSystemWatcher() if (!d->m_directories.isEmpty()) removeDirectories(directories()); - if (--(d->m_staticData->m_objectCount) == 0) { + if (!fileSystemWatcherStaticDataMap.isDestroyed() && --(d->m_staticData->m_objectCount) == 0) { delete d->m_staticData->m_watcher; d->m_staticData->m_watcher = nullptr; d->m_staticData->m_fileCount.clear(); |