summaryrefslogtreecommitdiff
path: root/extensions/source/plugin/win/sysplug.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/source/plugin/win/sysplug.cxx')
-rw-r--r--extensions/source/plugin/win/sysplug.cxx10
1 files changed, 9 insertions, 1 deletions
diff --git a/extensions/source/plugin/win/sysplug.cxx b/extensions/source/plugin/win/sysplug.cxx
index d34c80012295..eb14ec05be88 100644
--- a/extensions/source/plugin/win/sysplug.cxx
+++ b/extensions/source/plugin/win/sysplug.cxx
@@ -98,12 +98,20 @@ PluginComm_Impl::PluginComm_Impl( const OUString& /*rMIME*/, const OUString& rNa
"### version failure!" );
m_eCall = eNP_Initialize;
- execute();
+ if (execute() != NPERR_NO_ERROR) {
+ shutdown();
+ throw CannotInitializeException();
+ }
}
PluginComm_Impl::~PluginComm_Impl()
{
+ shutdown();
+}
+
+void PluginComm_Impl::shutdown()
+{
if (_plDLL)
{
// NPP_Shutdown();