diff options
author | Matthew Newhook <matthew@zeroc.com> | 2007-01-10 20:39:51 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2007-01-10 20:39:51 +0000 |
commit | 66f8deb894fe90fa47e7e30dea1ecc558e0a928e (patch) | |
tree | 4c8018c9e3269b21f8e7b2e5f1fbdfd279540f1e /rb/src | |
parent | Added sun ifdef (diff) | |
download | ice-66f8deb894fe90fa47e7e30dea1ecc558e0a928e.tar.bz2 ice-66f8deb894fe90fa47e7e30dea1ecc558e0a928e.tar.xz ice-66f8deb894fe90fa47e7e30dea1ecc558e0a928e.zip |
http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=1391. Fixed GC bug with
communicator.
Diffstat (limited to 'rb/src')
-rw-r--r-- | rb/src/IceRuby/Communicator.cpp | 13 | ||||
-rw-r--r-- | rb/src/IceRuby/Makefile | 4 |
2 files changed, 12 insertions, 5 deletions
diff --git a/rb/src/IceRuby/Communicator.cpp b/rb/src/IceRuby/Communicator.cpp index 9902f7a7b1a..21461c023a3 100644 --- a/rb/src/IceRuby/Communicator.cpp +++ b/rb/src/IceRuby/Communicator.cpp @@ -34,9 +34,16 @@ void IceRuby_Communicator_mark(Ice::CommunicatorPtr* p) { assert(p); - ObjectFactoryPtr pof = ObjectFactoryPtr::dynamicCast((*p)->findObjectFactory("")); - assert(pof); - pof->mark(); + try + { + ObjectFactoryPtr pof = ObjectFactoryPtr::dynamicCast((*p)->findObjectFactory("")); + assert(pof); + pof->mark(); + } + catch(const Ice::CommunicatorDestroyedException&) + { + // Ignore. This is expected. + } } extern "C" diff --git a/rb/src/IceRuby/Makefile b/rb/src/IceRuby/Makefile index a2cac771d4d..ff69f075f57 100644 --- a/rb/src/IceRuby/Makefile +++ b/rb/src/IceRuby/Makefile @@ -9,8 +9,8 @@ top_srcdir = ../.. -LIBNAME = $(call mkrubylibname,IceRuby) -SONAME = $(LIBNAME) +LIBNAME = $(call mklibname,IceRuby) +SONAME = $(call mksoname,Ice,$(SOVERSION)) TARGETS = $(rubydir)/$(LIBNAME) |