* eval.c (rb_obj_instance_eval): use class of immediate objects.

* test/ruby/test_eval.rb: fix a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2007-12-22 02:52:27 +00:00
Родитель b507930297
Коммит 85143195da
3 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Sat Dec 22 11:47:42 2007 Koichi Sasada <ko1@atdot.net>
* eval.c (rb_obj_instance_eval): use class of immediate objects.
* test/ruby/test_eval.rb: fix a test.
Sat Dec 22 11:37:06 2007 NAKAMURA Usaku <usa@ruby-lang.org>
* encoding.c (rb_locale_charmap): win32 support.

2
eval.c
Просмотреть файл

@ -1998,7 +1998,7 @@ rb_obj_instance_eval(int argc, VALUE *argv, VALUE self)
VALUE klass;
if (SPECIAL_CONST_P(self)) {
klass = Qnil;
klass = CLASS_OF(self); //klass = Qnil;
}
else {
klass = rb_singleton_class(self);

Просмотреть файл

@ -341,7 +341,7 @@ class TestEval < Test::Unit::TestCase
def test_cvar_scope_with_instance_eval
Fixnum.class_eval "@@test_cvar_scope_with_instance_eval = 1" # depends on [ruby-dev:24229]
@@test_cvar_scope_with_instance_eval = 4
assert_equal(4, 1.instance_eval("@@test_cvar_scope_with_instance_eval"), "[ruby-dev:24223]")
assert_equal(1, 1.instance_eval("@@test_cvar_scope_with_instance_eval"), "[ruby-dev:24223]")
Fixnum.__send__(:remove_class_variable, :@@test_cvar_scope_with_instance_eval)
end