summaryrefslogtreecommitdiffstats
path: root/src/track/globaltrackcache.h
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2018-03-11 00:22:02 +0100
committerDaniel Schürmann <daschuer@mixxx.org>2018-03-11 00:24:42 +0100
commitbbadb0fab36de841f1e9cea71cc420fe55e6faeb (patch)
treebd9f920d93d41b9b559ff9c2eec1889aa716ddea /src/track/globaltrackcache.h
parentbdcd714b53291ca038bc5eb1bb626280f93e77f3 (diff)
replace the shared track pointer with an uniqe ptr
Diffstat (limited to 'src/track/globaltrackcache.h')
-rw-r--r--src/track/globaltrackcache.h17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/track/globaltrackcache.h b/src/track/globaltrackcache.h
index 551b1b5f99..76b505c88d 100644
--- a/src/track/globaltrackcache.h
+++ b/src/track/globaltrackcache.h
@@ -39,18 +39,16 @@ class GlobalTrackCacheEntry final {
// is not longer referenced, the track is saved and evicted
// from the cache.
public:
- GlobalTrackCacheEntry(
- TrackPointer deletingPtr, TrackWeakPointer savingWeakPtr)
- : m_deletingPtr(std::move(deletingPtr)),
- m_savingWeakPtr(std::move(savingWeakPtr)) {
+ explicit GlobalTrackCacheEntry(
+ std::unique_ptr<Track, void (&)(Track*)> deletingPtr)
+ : m_deletingPtr(std::move(deletingPtr)) {
}
+ GlobalTrackCacheEntry(const GlobalTrackCacheEntry& other) = delete;
+
Track* getPlainPtr() const {
return m_deletingPtr.get();
}
- const TrackPointer& getDeletingPtr() const {
- return m_deletingPtr;
- }
const TrackWeakPointer& getSavingWeakPtr() const {
return m_savingWeakPtr;
}
@@ -59,7 +57,7 @@ class GlobalTrackCacheEntry final {
}
private:
- TrackPointer m_deletingPtr;
+ std::unique_ptr<Track, void (&)(Track*)> m_deletingPtr;
TrackWeakPointer m_savingWeakPtr;
};
@@ -165,8 +163,7 @@ private:
class /*interface*/ GlobalTrackCacheSaver {
private:
friend class GlobalTrackCache;
- virtual void saveCachedTrack(
- TrackPointer pTrack) noexcept = 0;
+ virtual void saveCachedTrack(Track* pTrack) noexcept = 0;
protected:
virtual ~GlobalTrackCacheSaver() {}