From b64ae5943c8db10a07343b583324f7e79a892165 Mon Sep 17 00:00:00 2001 From: Jose Date: Tue, 29 Dec 2020 16:01:03 +0100 Subject: Fix segfault unmarshalling exception class data member - Close #1224 --- ruby/src/IceRuby/Types.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ruby/src') 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(_ex) = _info->unmarshal(is); + rb_gc_register_address(&_ex); const_cast(_slicedData) = is->endException(_info->preserve); } -- cgit v1.2.3