summaryrefslogtreecommitdiff
path: root/ruby/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-02-06 15:37:35 +0100
committerBenoit Foucher <benoit@zeroc.com>2017-02-06 15:37:35 +0100
commitcf56800aced9d820b75ddf9d29cc15afe92f7d6f (patch)
tree8417d1ccc269432f55348ac2d0a46c125e695d4c /ruby/src
parentFixed ICE-7558 - Reduce chances to lose datagrams by tuning the buffer size a... (diff)
downloadice-cf56800aced9d820b75ddf9d29cc15afe92f7d6f.tar.bz2
ice-cf56800aced9d820b75ddf9d29cc15afe92f7d6f.tar.xz
ice-cf56800aced9d820b75ddf9d29cc15afe92f7d6f.zip
Fixed ICE-7531 - ValueFactoryManager segfault
Diffstat (limited to 'ruby/src')
-rw-r--r--ruby/src/IceRuby/ValueFactoryManager.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/ruby/src/IceRuby/ValueFactoryManager.cpp b/ruby/src/IceRuby/ValueFactoryManager.cpp
index e125328afdf..8e54983f37c 100644
--- a/ruby/src/IceRuby/ValueFactoryManager.cpp
+++ b/ruby/src/IceRuby/ValueFactoryManager.cpp
@@ -219,6 +219,13 @@ IceRuby::ValueFactoryManager::destroy()
{
Lock lock(*this);
+ if(_self == Qnil)
+ {
+ //
+ // Nothing to do if already destroyed (this can occur if communicator destroy is called multiple times)
+ //
+ return;
+ }
factories.swap(_factories);