@@ -942,8 +942,8 @@ static VALUE
942942init_pg_text_decoder_inet (VALUE rb_mPG_TextDecoder )
943943{
944944 rb_require ("ipaddr" );
945+ rb_gc_register_address (& s_IPAddr );
945946 s_IPAddr = rb_funcall (rb_cObject , rb_intern ("const_get" ), 1 , rb_str_new2 ("IPAddr" ));
946- rb_global_variable (& s_IPAddr );
947947 s_ivar_family = rb_intern ("@family" );
948948 s_ivar_addr = rb_intern ("@addr" );
949949 s_ivar_mask_addr = rb_intern ("@mask_addr" );
@@ -953,10 +953,10 @@ init_pg_text_decoder_inet(VALUE rb_mPG_TextDecoder)
953953
954954 use_ipaddr_alloc = RTEST (rb_eval_string ("IPAddr.new.instance_variables.sort == [:@addr, :@family, :@mask_addr]" ));
955955
956+ rb_gc_register_address (& s_vmasks4 );
957+ rb_gc_register_address (& s_vmasks6 );
956958 s_vmasks4 = rb_eval_string ("a = [0]*33; a[0] = 0; a[32] = 0xffffffff; 31.downto(1){|i| a[i] = a[i+1] - (1 << (31 - i))}; a.freeze" );
957- rb_global_variable (& s_vmasks4 );
958959 s_vmasks6 = rb_eval_string ("a = [0]*129; a[0] = 0; a[128] = 0xffffffffffffffffffffffffffffffff; 127.downto(1){|i| a[i] = a[i+1] - (1 << (127 - i))}; a.freeze" );
959- rb_global_variable (& s_vmasks6 );
960960
961961 /* dummy = rb_define_class_under( rb_mPG_TextDecoder, "Inet", rb_cPG_SimpleDecoder ); */
962962 pg_define_coder ( "Inet" , pg_text_dec_inet , rb_cPG_SimpleDecoder , rb_mPG_TextDecoder );
@@ -973,12 +973,12 @@ init_pg_text_decoder(void)
973973 s_id_utc = rb_intern ("utc" );
974974 s_id_getlocal = rb_intern ("getlocal" );
975975
976+ rb_gc_register_address (& s_nan );
977+ rb_gc_register_address (& s_pos_inf );
978+ rb_gc_register_address (& s_neg_inf );
976979 s_nan = rb_eval_string ("0.0/0.0" );
977- rb_global_variable (& s_nan );
978980 s_pos_inf = rb_eval_string ("1.0/0.0" );
979- rb_global_variable (& s_pos_inf );
980981 s_neg_inf = rb_eval_string ("-1.0/0.0" );
981- rb_global_variable (& s_neg_inf );
982982
983983 /* This module encapsulates all decoder classes with text input format */
984984 rb_mPG_TextDecoder = rb_define_module_under ( rb_mPG , "TextDecoder" );
0 commit comments