зеркало из https://github.com/github/ruby.git
vm.c: avoid inadvertent pin-down
* vm.c (vm_stat): get rid of inadvertent dynamic symbol pin-down, and preserve encoding in error messages. also should not use RSTRING_PTR macro on function calls. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
8125399c09
Коммит
03f0ca4c81
|
@ -12,5 +12,6 @@ class TestRubyVM < Test::Unit::TestCase
|
|||
|
||||
def test_stat_unknown
|
||||
assert_raise(ArgumentError){ RubyVM.stat(:unknown) }
|
||||
assert_raise_with_message(ArgumentError, /\u{30eb 30d3 30fc}/) {RubyVM.stat(:"\u{30eb 30d3 30fc}")}
|
||||
end
|
||||
end
|
||||
|
|
5
vm.c
5
vm.c
|
@ -173,8 +173,9 @@ vm_stat(int argc, VALUE *argv, VALUE self)
|
|||
SET(class_serial, ruby_vm_class_serial);
|
||||
#undef SET
|
||||
|
||||
if (key != Qnil) /* matched key should return above */
|
||||
rb_raise(rb_eArgError, "unknown key: %s", RSTRING_PTR(rb_id2str(SYM2ID(key))));
|
||||
if (!NIL_P(key)) { /* matched key should return above */
|
||||
rb_raise(rb_eArgError, "unknown key: %"PRIsVALUE, rb_sym2str(key));
|
||||
}
|
||||
|
||||
return hash;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче