From b4830a840540766909bcd359fe94d5ea5afef81e Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Mon, 4 May 2015 11:58:19 +0200 Subject: options: use weak pointers for bundles Otherwise none ever get freed. Oops! --- opentrack/options.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/opentrack/options.hpp b/opentrack/options.hpp index 5eae754f..35b1640e 100644 --- a/opentrack/options.hpp +++ b/opentrack/options.hpp @@ -224,7 +224,7 @@ namespace options { { public: using pbundle = std::shared_ptr; - using tt = std::tuple; + using tt = std::tuple>; private: QMutex implsgl_mtx; map implsgl_data; @@ -242,7 +242,11 @@ namespace options { QMutexLocker l(&implsgl_mtx); if (implsgl_data.count(key) != 0) - return std::get<1>(implsgl_data[key]); + { + auto shared = std::get<1>(implsgl_data[key]).lock(); + if (shared != nullptr) + return shared; + } qDebug() << "bundle +" << QString::fromStdString(key); -- cgit v1.2.3