summaryrefslogtreecommitdiff
path: root/cpp/src/IceGridLib/PluginFacadeI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGridLib/PluginFacadeI.cpp')
-rw-r--r--cpp/src/IceGridLib/PluginFacadeI.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/cpp/src/IceGridLib/PluginFacadeI.cpp b/cpp/src/IceGridLib/PluginFacadeI.cpp
index 6bcd4f92358..19496104190 100644
--- a/cpp/src/IceGridLib/PluginFacadeI.cpp
+++ b/cpp/src/IceGridLib/PluginFacadeI.cpp
@@ -18,9 +18,12 @@ using namespace IceGrid;
namespace
{
-RegistryPluginFacadePtr pluginFacade;
-
-};
+#ifdef ICE_CPP11_MAPPING
+std::shared_ptr<RegistryPluginFacade> pluginFacade;
+#else
+RegistryPluginFacade* pluginFacade = 0;
+#endif
+}
namespace IceGrid
{
@@ -38,5 +41,17 @@ IceGrid::getRegistryPluginFacade()
void
IceGrid::setRegistryPluginFacade(const RegistryPluginFacadePtr& facade)
{
+#ifdef ICE_CPP11_MAPPING
pluginFacade = facade;
+#else
+ if(pluginFacade)
+ {
+ pluginFacade->__decRef();
+ }
+ pluginFacade = facade.get();
+ if(pluginFacade)
+ {
+ pluginFacade->__incRef();
+ }
+#endif
}