зеркало из https://github.com/github/ruby.git
vm.c: initialize defined_module_hash early
* vm.c (Init_BareVM): initialize defined_module_hash here, Init_top_self() is too late to register core classes/modules. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
a7d04e536b
Коммит
15798b606e
|
@ -1,5 +1,8 @@
|
|||
2013-10-13 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* vm.c (Init_BareVM): initialize defined_module_hash here,
|
||||
Init_top_self() is too late to register core classes/modules.
|
||||
|
||||
* compile.c (compile_array_): no hash to merge if it is empty.
|
||||
|
||||
* vm.c (m_core_hash_merge_kwd): just check keys if only one argument
|
||||
|
|
|
@ -11,6 +11,16 @@ assert_equal 'C', %q( class C; end
|
|||
C.new.class.name )
|
||||
assert_equal 'Class', %q( class C; end
|
||||
C.new.class.class )
|
||||
assert_equal 'true', %q( Object.__send__(:remove_const, :TrueClass)
|
||||
GC.start
|
||||
true.inspect)
|
||||
assert_equal 'false', %q( Object.__send__(:remove_const, :FalseClass)
|
||||
GC.start
|
||||
false.inspect)
|
||||
assert_equal 'nil', %q( Object.__send__(:remove_const, :NilClass)
|
||||
GC.start
|
||||
nil.inspect)
|
||||
|
||||
|
||||
# inherited class
|
||||
assert_equal 'true', %q( class A; end
|
||||
|
|
2
vm.c
2
vm.c
|
@ -2617,6 +2617,7 @@ Init_BareVM(void)
|
|||
th->vm = vm;
|
||||
th_init(th, 0);
|
||||
ruby_thread_init_stack(th);
|
||||
vm->defined_module_hash = rb_hash_new();
|
||||
}
|
||||
|
||||
/* top self */
|
||||
|
@ -2644,7 +2645,6 @@ Init_top_self(void)
|
|||
|
||||
/* initialize mark object array, hash */
|
||||
vm->mark_object_ary = rb_ary_tmp_new(1);
|
||||
vm->defined_module_hash = rb_hash_new();
|
||||
}
|
||||
|
||||
VALUE *
|
||||
|
|
Загрузка…
Ссылка в новой задаче