summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2008-12-23 13:43:12 +0100
committerJose <jose@zeroc.com>2008-12-23 13:43:12 +0100
commit434b3f520954279abf4403ee95f896d684c6532a (patch)
tree3616ae4bd47287ac8e161f9ee3ff862a8832ff34 /cpp
parentChange System.getProperties().getProperty() to System.getProperty() (diff)
downloadice-434b3f520954279abf4403ee95f896d684c6532a.tar.bz2
ice-434b3f520954279abf4403ee95f896d684c6532a.tar.xz
ice-434b3f520954279abf4403ee95f896d684c6532a.zip
Fix 3601 - plugins can be destroyed twice
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/Ice/PluginManagerI.cpp12
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;