mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
[Feature #20470] Split GC into gc_impl.c
This commit splits gc.c into two files: - gc.c now only contains code not specific to Ruby GC. This includes code to mark objects (which the GC implementation may choose not to use) and wrappers for internal APIs that the implementation may need to use (e.g. locking the VM). - gc_impl.c now contains the implementation of Ruby's GC. This includes marking, sweeping, compaction, and statistics. Most importantly, gc_impl.c only uses public APIs in Ruby and a limited set of functions exposed in gc.c. This allows us to build gc_impl.c independently of Ruby and plug Ruby's GC into itself.
This commit is contained in:
parent
9aa62bda46
commit
51bd816517
15 changed files with 11158 additions and 10661 deletions
2
eval.c
2
eval.c
|
@ -161,7 +161,7 @@ rb_ec_finalize(rb_execution_context_t *ec)
|
|||
{
|
||||
ruby_sig_finalize();
|
||||
ec->errinfo = Qnil;
|
||||
rb_objspace_call_finalizer(rb_ec_vm_ptr(ec)->objspace);
|
||||
rb_objspace_call_finalizer();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue