@@ -31,6 +31,11 @@ CachedUnityMenuModel::CachedUnityMenuModel(QObject* parent)
32CachedUnityMenuModel::~CachedUnityMenuModel()
32CachedUnityMenuModel::~CachedUnityMenuModel()
36+ UnityMenuModelCache::cache()->deref(m_menuObjectPath);
36UnityMenuModel* CachedUnityMenuModel::model() const
41UnityMenuModel* CachedUnityMenuModel::model() const
@@ -80,7 +85,11 @@ QString CachedUnityMenuModel::menuObjectPath() const
80void CachedUnityMenuModel::setMenuObjectPath(const QString &path)
85void CachedUnityMenuModel::setMenuObjectPath(const QString &path)
82 if (m_menuObjectPath != path) {
87 if (m_menuObjectPath != path) {
90+ UnityMenuModelCache::cache()->deref(m_menuObjectPath);
83− m_model = NULL;
91+ m_model = NULL;
85 m_menuObjectPath = path;
94 m_menuObjectPath = path;
86 Q_EMIT menuObjectPathChanged(m_menuObjectPath);
95 Q_EMIT menuObjectPathChanged(m_menuObjectPath);
@@ -96,6 +105,7 @@ void CachedUnityMenuModel::setMenuObjectPath(const QString &path)
97 UnityMenuModelCache::cache()->registerModel(m_menuObjectPath, m_model);
106 UnityMenuModelCache::cache()->registerModel(m_menuObjectPath, m_model);
108+ UnityMenuModelCache::cache()->ref(m_menuObjectPath);
101 Q_EMIT modelChanged(m_model);
111 Q_EMIT modelChanged(m_model);