diff options
Diffstat (limited to 'cpp/src/IceGridLib/PluginFacadeI.cpp')
-rw-r--r-- | cpp/src/IceGridLib/PluginFacadeI.cpp | 21 |
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 } |