diff options
author | Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> | 2015-05-22 14:01:59 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> | 2015-05-27 18:45:29 +0000 |
commit | 547141352242f7f4eebc6814af7a5ea0f3dff5f8 (patch) | |
tree | ae99a717d91c073653426e16d01fa4767857ff66 /src/corelib/io/qfilesystemwatcher_fsevents.mm | |
parent | 5f21aa22fbc224cdd4102ae6a7797574a463af3b (diff) |
Add shared implementation of a NSAutoreleasePool wrapper to qglobal
We have at least 5 different (but equal) implementations of a wrapper
in Qt, and some code uses explicit NSAutoreleasePools. Having a shared
implementation lets us clean up things a bit and makes it easier to
reason about which pools are actually needed.
Change-Id: I2fd8eefc3ae7308595ef9899b7820206268362a5
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/corelib/io/qfilesystemwatcher_fsevents.mm')
-rw-r--r-- | src/corelib/io/qfilesystemwatcher_fsevents.mm | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/src/corelib/io/qfilesystemwatcher_fsevents.mm b/src/corelib/io/qfilesystemwatcher_fsevents.mm index 8a028c91e1..7656530a46 100644 --- a/src/corelib/io/qfilesystemwatcher_fsevents.mm +++ b/src/corelib/io/qfilesystemwatcher_fsevents.mm @@ -56,25 +56,6 @@ QT_BEGIN_NAMESPACE -namespace { -class RaiiAutoreleasePool -{ - Q_DISABLE_COPY(RaiiAutoreleasePool) - -public: - RaiiAutoreleasePool() - : pool([[NSAutoreleasePool alloc] init]) - {} - - ~RaiiAutoreleasePool() - { [pool release]; } - -private: - NSAutoreleasePool *pool; -}; -#define Q_AUTORELEASE_POOL(pool) RaiiAutoreleasePool pool; Q_UNUSED(pool); -} - static void callBackFunction(ConstFSEventStreamRef streamRef, void *clientCallBackInfo, size_t numEvents, @@ -82,7 +63,7 @@ static void callBackFunction(ConstFSEventStreamRef streamRef, const FSEventStreamEventFlags eventFlags[], const FSEventStreamEventId eventIds[]) { - Q_AUTORELEASE_POOL(pool) + QMacAutoReleasePool pool; char **paths = static_cast<char **>(eventPaths); QFseventsFileSystemWatcherEngine *engine = static_cast<QFseventsFileSystemWatcherEngine *>(clientCallBackInfo); @@ -297,7 +278,7 @@ void QFseventsFileSystemWatcherEngine::doEmitDirectoryChanged(const QString &pat void QFseventsFileSystemWatcherEngine::restartStream() { - Q_AUTORELEASE_POOL(pool) + QMacAutoReleasePool pool; QMutexLocker locker(&lock); stopStream(); startStream(); @@ -328,7 +309,7 @@ QFseventsFileSystemWatcherEngine::QFseventsFileSystemWatcherEngine(QObject *pare QFseventsFileSystemWatcherEngine::~QFseventsFileSystemWatcherEngine() { - Q_AUTORELEASE_POOL(pool) + QMacAutoReleasePool pool; if (stream) FSEventStreamStop(stream); @@ -344,7 +325,7 @@ QStringList QFseventsFileSystemWatcherEngine::addPaths(const QStringList &paths, QStringList *files, QStringList *directories) { - Q_AUTORELEASE_POOL(pool) + QMacAutoReleasePool pool; if (stream) { DEBUG("Flushing, last id is %llu", FSEventStreamGetLatestEventId(stream)); @@ -432,7 +413,7 @@ QStringList QFseventsFileSystemWatcherEngine::removePaths(const QStringList &pat QStringList *files, QStringList *directories) { - Q_AUTORELEASE_POOL(pool) + QMacAutoReleasePool pool; QMutexLocker locker(&lock); @@ -489,7 +470,7 @@ QStringList QFseventsFileSystemWatcherEngine::removePaths(const QStringList &pat bool QFseventsFileSystemWatcherEngine::startStream() { Q_ASSERT(stream == 0); - Q_AUTORELEASE_POOL(pool) + QMacAutoReleasePool pool; if (stream) // This shouldn't happen, but let's be nice and handle it. stopStream(); |