Mercurial > hg > piper-cpp
diff bits/PreservingPluginHandleMapper.h @ 57:7aec704705c7
Make the output ID mapper stuff safer by using shared_ptr
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Mon, 19 Sep 2016 14:43:32 +0100 |
parents | e90fd30990eb |
children | 8a4bcb3dc3a6 |
line wrap: on
line diff
--- a/bits/PreservingPluginHandleMapper.h Mon Sep 19 14:10:19 2016 +0100 +++ b/bits/PreservingPluginHandleMapper.h Mon Sep 19 14:43:32 2016 +0100 @@ -49,7 +49,10 @@ class PreservingPluginHandleMapper : public PluginHandleMapper { public: - PreservingPluginHandleMapper() : m_handle(0), m_plugin(0) { } + PreservingPluginHandleMapper() : + m_handle(0), + m_plugin(0), + m_omapper(std::make_shared<PreservingPluginOutputIdMapper>()) { } virtual Handle pluginToHandle(Vamp::Plugin *p) const { if (p == m_plugin) return m_handle; @@ -68,18 +71,20 @@ return m_plugin; } - virtual const PluginOutputIdMapper &pluginToOutputIdMapper(Vamp::Plugin *) const { + virtual const std::shared_ptr<PluginOutputIdMapper> pluginToOutputIdMapper + (Vamp::Plugin *) const { return m_omapper; } - virtual const PluginOutputIdMapper &handleToOutputIdMapper(Handle h) const { + virtual const std::shared_ptr<PluginOutputIdMapper> handleToOutputIdMapper + (Handle h) const { return m_omapper; } private: mutable Handle m_handle; mutable Vamp::Plugin *m_plugin; - PreservingPluginOutputIdMapper m_omapper; + std::shared_ptr<PreservingPluginOutputIdMapper> m_omapper; }; }