diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2019-09-22 19:55:54 +0200 |
---|---|---|
committer | Uwe Klotz <uklotz@mixxx.org> | 2019-09-22 19:56:30 +0200 |
commit | 3ebfee823040b2c153fb048b773a6a6bbb392904 (patch) | |
tree | e031484fb02e0635557c504861bf129dd1303513 /src/track/globaltrackcache.cpp | |
parent | 0554943a078c67ff78c540db4b886b1b468997d3 (diff) |
Verify that the evict-and-save functor is only executed once
Diffstat (limited to 'src/track/globaltrackcache.cpp')
-rw-r--r-- | src/track/globaltrackcache.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/track/globaltrackcache.cpp b/src/track/globaltrackcache.cpp index 5d1dfdbf26..b39326c3f8 100644 --- a/src/track/globaltrackcache.cpp +++ b/src/track/globaltrackcache.cpp @@ -36,17 +36,22 @@ TrackRef createTrackRef(const Track& track) { class EvictAndSaveFunctor { public: - explicit EvictAndSaveFunctor(GlobalTrackCacheEntryPointer cacheEntryPtr) + explicit EvictAndSaveFunctor( + GlobalTrackCacheEntryPointer cacheEntryPtr) : m_cacheEntryPtr(std::move(cacheEntryPtr)) { } void operator()(Track* plainPtr) { + Q_UNUSED(plainPtr); // only used in DEBUG_ASSERT + DEBUG_ASSERT(m_cacheEntryPtr); DEBUG_ASSERT(plainPtr == m_cacheEntryPtr->getPlainPtr()); // Here we move m_cacheEntryPtr and the owned track out of the // functor and the owning reference counting object. // This is required to break a cycle reference from the weak pointer // inside the cache entry to the same reference counting object. GlobalTrackCache::evictAndSaveCachedTrack(std::move(m_cacheEntryPtr)); + // Verify that this functor is only invoked once + DEBUG_ASSERT(!m_cacheEntryPtr); } const GlobalTrackCacheEntryPointer& getCacheEntryPointer() const { |