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 {