mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
iseq.c: fix conversion
* iseq.c (iseq_load): type is a symbol, and invalid as ID in common. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a46bf824bf
commit
588d10180f
3 changed files with 14 additions and 2 deletions
|
@ -1,3 +1,7 @@
|
|||
Sat Jun 9 17:21:48 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* iseq.c (iseq_load): type is a symbol, and invalid as ID in common.
|
||||
|
||||
Sat Jun 9 10:57:14 2012 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* process.c (rb_exec_async_signal_safe): extracted from rb_exec_err.
|
||||
|
|
5
iseq.c
5
iseq.c
|
@ -516,11 +516,12 @@ iseq_load(VALUE self, VALUE data, VALUE parent, VALUE opt)
|
|||
}
|
||||
|
||||
if (st_lookup(type_map, type, &iseq_type) == 0) {
|
||||
const char *typename = rb_id2name(type);
|
||||
ID typeid = SYM2ID(type);
|
||||
const char *typename = rb_id2name(typeid);
|
||||
if (typename)
|
||||
rb_raise(rb_eTypeError, "unsupport type: :%s", typename);
|
||||
else
|
||||
rb_raise(rb_eTypeError, "unsupport type: %p", (void *)type);
|
||||
rb_raise(rb_eTypeError, "unsupport type: %p", (void *)typeid);
|
||||
}
|
||||
|
||||
if (parent == Qnil) {
|
||||
|
|
|
@ -8,4 +8,11 @@ class TestISeq < Test::Unit::TestCase
|
|||
bug5894 = '[ruby-dev:45130]'
|
||||
assert_normal_exit('p RubyVM::InstructionSequence.compile("1", "mac", "", 0).to_a', bug5894)
|
||||
end
|
||||
|
||||
def test_unsupport_type
|
||||
ary = RubyVM::InstructionSequence.compile("p").to_a
|
||||
ary[9] = :foobar
|
||||
e = assert_raise(TypeError) {RubyVM::InstructionSequence.load(ary)}
|
||||
assert_match(/:foobar/, e.message)
|
||||
end if defined?(RubyVM::InstructionSequence.load)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue