rice/Address_Registration_Guard.ipp in rice-jdguyot-1.4.0 vs rice/Address_Registration_Guard.ipp in rice-jdguyot-1.4.3p1
- old
+ new
@@ -3,23 +3,26 @@
inline Rice::Address_Registration_Guard::
Address_Registration_Guard(VALUE * address)
: address_(address)
{
+ registerExitHandler();
rb_gc_register_address(address);
}
inline Rice::Address_Registration_Guard::
Address_Registration_Guard(Object * object)
: address_(const_cast<VALUE *>(&object->value()))
{
+ registerExitHandler();
rb_gc_register_address(address_);
}
inline Rice::Address_Registration_Guard::
~Address_Registration_Guard()
{
- rb_gc_unregister_address(address_);
+ if (enabled)
+ rb_gc_unregister_address(address_);
}
inline VALUE * Rice::Address_Registration_Guard::
address() const
{