diff options
author | Jose <jose@zeroc.com> | 2008-12-23 13:43:12 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2008-12-23 13:43:12 +0100 |
commit | 434b3f520954279abf4403ee95f896d684c6532a (patch) | |
tree | 3616ae4bd47287ac8e161f9ee3ff862a8832ff34 /cpp/src | |
parent | Change System.getProperties().getProperty() to System.getProperty() (diff) | |
download | ice-434b3f520954279abf4403ee95f896d684c6532a.tar.bz2 ice-434b3f520954279abf4403ee95f896d684c6532a.tar.xz ice-434b3f520954279abf4403ee95f896d684c6532a.zip |
Fix 3601 - plugins can be destroyed twice
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/PluginManagerI.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cpp/src/Ice/PluginManagerI.cpp b/cpp/src/Ice/PluginManagerI.cpp index 36812c69ac5..4541212d5b7 100644 --- a/cpp/src/Ice/PluginManagerI.cpp +++ b/cpp/src/Ice/PluginManagerI.cpp @@ -118,11 +118,15 @@ Ice::PluginManagerI::destroy() if(_communicator) { - map<string, PluginPtr>::iterator r; - for(r = _plugins.begin(); r != _plugins.end(); ++r) + + if(_initialized) { - r->second->destroy(); - r->second = 0; + map<string, PluginPtr>::iterator r; + for(r = _plugins.begin(); r != _plugins.end(); ++r) + { + r->second->destroy(); + r->second = 0; + } } _communicator = 0; |