mirror of
https://github.com/ruby/ruby.git
synced 2025-09-17 09:33:59 +02:00
revert r59815 partially.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@59816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a2a0b976b2
commit
db897cc318
2 changed files with 0 additions and 25 deletions
2
gc.c
2
gc.c
|
@ -2734,14 +2734,12 @@ run_finalizer(rb_objspace_t *objspace, VALUE obj, VALUE table)
|
||||||
} saved;
|
} saved;
|
||||||
rb_thread_t *const th = GET_THREAD();
|
rb_thread_t *const th = GET_THREAD();
|
||||||
#define RESTORE_FINALIZER() (\
|
#define RESTORE_FINALIZER() (\
|
||||||
th->cfp = saved.cfp, \
|
|
||||||
rb_set_safe_level_force(saved.safe), \
|
rb_set_safe_level_force(saved.safe), \
|
||||||
rb_set_errinfo(saved.errinfo))
|
rb_set_errinfo(saved.errinfo))
|
||||||
|
|
||||||
saved.safe = rb_safe_level();
|
saved.safe = rb_safe_level();
|
||||||
saved.errinfo = rb_errinfo();
|
saved.errinfo = rb_errinfo();
|
||||||
saved.objid = nonspecial_obj_id(obj);
|
saved.objid = nonspecial_obj_id(obj);
|
||||||
saved.cfp = th->cfp;
|
|
||||||
saved.finished = 0;
|
saved.finished = 0;
|
||||||
|
|
||||||
TH_PUSH_TAG(th);
|
TH_PUSH_TAG(th);
|
||||||
|
|
|
@ -397,27 +397,4 @@ class TestGc < Test::Unit::TestCase
|
||||||
ObjectSpace.each_object{|o| case o when Module then o.instance_methods end}
|
ObjectSpace.each_object{|o| case o when Module then o.instance_methods end}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_exception_in_finalizer_method
|
|
||||||
@result = []
|
|
||||||
def self.c1(x)
|
|
||||||
@result << :c1
|
|
||||||
raise
|
|
||||||
end
|
|
||||||
def self.c2(x)
|
|
||||||
@result << :c2
|
|
||||||
raise
|
|
||||||
end
|
|
||||||
tap {
|
|
||||||
tap {
|
|
||||||
obj = Object.new
|
|
||||||
ObjectSpace.define_finalizer(obj, method(:c1))
|
|
||||||
ObjectSpace.define_finalizer(obj, method(:c2))
|
|
||||||
obj = nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
GC.start
|
|
||||||
skip "finalizers did not get run" if @result.empty?
|
|
||||||
assert_equal([:c1, :c2], @result)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue