summaryrefslogtreecommitdiff
path: root/ruby
diff options
context:
space:
mode:
Diffstat (limited to 'ruby')
-rw-r--r--ruby/src/IceRuby/Types.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/ruby/src/IceRuby/Types.cpp b/ruby/src/IceRuby/Types.cpp
index 324f8778793..8642e984c8b 100644
--- a/ruby/src/IceRuby/Types.cpp
+++ b/ruby/src/IceRuby/Types.cpp
@@ -2889,6 +2889,7 @@ IceRuby::ExceptionReader::ExceptionReader(const ExceptionInfoPtr& info) :
IceRuby::ExceptionReader::~ExceptionReader()
throw()
{
+ rb_gc_unregister_address(&_ex);
}
string
@@ -2924,6 +2925,7 @@ IceRuby::ExceptionReader::_read(Ice::InputStream* is)
is->startException();
const_cast<VALUE&>(_ex) = _info->unmarshal(is);
+ rb_gc_register_address(&_ex);
const_cast<Ice::SlicedDataPtr&>(_slicedData) = is->endException(_info->preserve);
}