Backport #2475
closedInstructionSequence#to_a fails for duparray
Description
=begin
irb(main):003:0> i = RubyVM::InstructionSequence.compile("a = [ 1, 2, 3 ]; foo(a)")
=> <RubyVM::InstructionSequence:@>
irb(main):004:0> i.to_a
NotImplementedError: method inspect' called on terminated object (0x984de08) from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:302:in
inspect'
from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:302:in inspect' from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:302:in
inspect'
from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:302:in output_value' from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:150:in
block (2 levels) in eval_input'
from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:263:in signal_status' from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:146:in
block in eval_input'
from /usr/local/lib/ruby1.9.1/1.9.1/irb/ruby-lex.rb:244:in block (2 levels) in each_top_level_statement' from /usr/local/lib/ruby1.9.1/1.9.1/irb/ruby-lex.rb:230:in
loop'
from /usr/local/lib/ruby1.9.1/1.9.1/irb/ruby-lex.rb:230:in block in each_top_level_statement' from /usr/local/lib/ruby1.9.1/1.9.1/irb/ruby-lex.rb:229:in
catch'
from /usr/local/lib/ruby1.9.1/1.9.1/irb/ruby-lex.rb:229:in each_top_level_statement' from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:145:in
eval_input'
from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:69:in block in start' from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:68:in
catch'
from /usr/local/lib/ruby1.9.1/1.9.1/irb.rb:68:in start' from /usr/local/bin/irb1.9.1:12:in
'Maybe IRB bug!!
I think #to_a does not hanndle the hidden_obj_p case correctly.
=end
Updated by naruse (Yui NARUSE) almost 15 years ago
=begin
This is already fixed in p376, isn't it?
=end
Updated by nobu (Nobuyoshi Nakada) almost 15 years ago
- Assignee set to yugui (Yuki Sonoda)
=begin
r22395 & r22640
=end
Updated by yugui (Yuki Sonoda) over 14 years ago
- Status changed from Open to Closed
=begin
fixed at r26570.
=end
Updated by judofyr (Magnus Holm) over 14 years ago
=begin
I'm having this issue in ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin10.3.0]:
ruby -e'RubyVM::InstructionSequence.compile("a = [ 1, 2, 3 ]; foo(a)").to_a.inspect'
-e:1:in inspect': method
inspect' called on terminated object (0x00000100844f20) (NotImplementedError)
from -e:1:in inspect' from -e:1:in
inspect'
from -e:1:in `'
=end
Updated by rogerdpack (Roger Pack) over 14 years ago
=begin
fixed at r26570.
I'm having this issue in ruby 1.9.1p378 (2010-01-10 revision 26273)
[i386-darwin10.3.0]:
Looks like it won't work until another revision of 1.9.1 is released. So you can either build 1.9.1 from its branch, or use 1.9.2 preview, or wait.
Cheers.
-rp
=end