[Bug #19584] Register global variables before assignment
This commit is contained in:
parent
5f8ebcada0
commit
e13575bb79
7
io.c
7
io.c
@ -15533,13 +15533,12 @@ Init_IO(void)
|
||||
rb_gvar_ractor_local("$>");
|
||||
rb_gvar_ractor_local("$stderr");
|
||||
|
||||
rb_stdin = rb_io_prep_stdin();
|
||||
rb_stdout = rb_io_prep_stdout();
|
||||
rb_stderr = rb_io_prep_stderr();
|
||||
|
||||
rb_global_variable(&rb_stdin);
|
||||
rb_stdin = rb_io_prep_stdin();
|
||||
rb_global_variable(&rb_stdout);
|
||||
rb_stdout = rb_io_prep_stdout();
|
||||
rb_global_variable(&rb_stderr);
|
||||
rb_stderr = rb_io_prep_stderr();
|
||||
|
||||
orig_stdout = rb_stdout;
|
||||
orig_stderr = rb_stderr;
|
||||
|
@ -28,8 +28,8 @@ static VALUE get_registered_before_rb_global_variable(VALUE self) {
|
||||
}
|
||||
|
||||
static VALUE gc_spec_rb_gc_register_address(VALUE self) {
|
||||
rb_gc_register_address_outside_init = rb_str_new_cstr("rb_gc_register_address() outside Init_");
|
||||
rb_gc_register_address(&rb_gc_register_address_outside_init);
|
||||
rb_gc_register_address_outside_init = rb_str_new_cstr("rb_gc_register_address() outside Init_");
|
||||
return rb_gc_register_address_outside_init;
|
||||
}
|
||||
|
||||
@ -67,14 +67,14 @@ static VALUE gc_spec_rb_gc_register_mark_object(VALUE self, VALUE obj) {
|
||||
|
||||
void Init_gc_spec(void) {
|
||||
VALUE cls = rb_define_class("CApiGCSpecs", rb_cObject);
|
||||
registered_tagged_value = INT2NUM(10);
|
||||
registered_reference_value = rb_str_new2("Globally registered data");
|
||||
|
||||
rb_gc_register_address(®istered_tagged_value);
|
||||
rb_gc_register_address(®istered_reference_value);
|
||||
rb_gc_register_address(®istered_before_rb_gc_register_address);
|
||||
rb_global_variable(®istered_before_rb_global_variable);
|
||||
|
||||
registered_tagged_value = INT2NUM(10);
|
||||
registered_reference_value = rb_str_new2("Globally registered data");
|
||||
registered_before_rb_gc_register_address = rb_str_new_cstr("registered before rb_gc_register_address()");
|
||||
registered_before_rb_global_variable = rb_str_new_cstr("registered before rb_global_variable()");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user