Mercurial > hg > vampy
changeset 113:c7694d24500c
Fix crash when plugin library is loaded and unloaded without any plugins being queried (so extension manager is never initialised)
author | Chris Cannam |
---|---|
date | Tue, 26 Feb 2019 12:46:24 +0000 |
parents | 2a085624f9e4 |
children | 35ea82e24988 |
files | PyExtensionManager.cpp |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/PyExtensionManager.cpp Tue Feb 19 14:30:03 2019 +0000 +++ b/PyExtensionManager.cpp Tue Feb 26 12:46:24 2019 +0000 @@ -47,7 +47,9 @@ NULL }; -PyExtensionManager::PyExtensionManager() +PyExtensionManager::PyExtensionManager() : + m_pyGlobalNamespace(0), + m_pyVampyNamespace(0) { DSTREAM << "Creating extension manager." << endl; } @@ -82,15 +84,22 @@ PyExtensionManager::~PyExtensionManager() { + if (!m_pyVampyNamespace) { + DSTREAM << "Vampy::~PyExtensionManager: manager was never initialised, or initialisation did not complete: not attempting cleanup" << endl; + return; + } + DSTREAM << "Cleaning locals..." << endl; cleanAllLocals(); DSTREAM << "Cleaning module..." << endl; - if (!cleanModule()) + if (!cleanModule()) { cerr << "Vampy::~PyExtensionManager: failed to clean extension module." << endl; - DSTREAM << "Vampy::~PyExtensionManager: Extension module cleaned." << endl; + } else { + DSTREAM << "Vampy::~PyExtensionManager: Extension module cleaned." << endl; + } }