On Thu, May 17, 2007 at 11:14:35PM +0900, Paul Brannan wrote:
> This seems to make valgrind much happier.
> 
> I'm seeing a segfault now, though, where I didn't see one before.  It
> may be the fault of an extension.  I will see if I can make a small test
> case.

i = VM::InstructionSequence.new('for a in []; end')
a = i.to_a
i2 = VM::InstructionSequence.load(a)
puts i2.disasm

test3.rb:4: -- stack frame ------------
0000 (0x402fb008): 00000000
0001 (0x402fb00c): 00000004
0002 (0x402fb010): 00000001
0003 (0x402fb014): 402ecc10
0004 (0x402fb018): 402ecaf8
0005 (0x402fb01c): 402ec10c
0006 (0x402fb020): 00000004
0007 (0x402fb024): 00000001
0008 (0x402fb028): 00000004
0009 (0x402fb02c): 402ec10c
0010 (0x402fb030): 00000004
0011 (0x402fb034): 00000001 <- lfp <- dfp
-- control frame ----------
c:0004 p:---- s:0012 b:0012 l:000011 d:000011 CFUNC  :disasm
c:0003 p:0065 s:0009 b:0008 l:000007 d:000007 TOP    test3.rb:4
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------ 
---------------------------
DBG> : "test3.rb:4:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x80e46ec
0x80fbaa4
0x80b700f
0x4003ee31
0xffffe420
0x80d97fe
0x80d9efe
0x80d9f46
0x80e29f6
0x80df948
0x80e1e46
0x80e25da
0x80e4872
0x80e4942
0x805968e
0x80596c5
0x80596ff
0x8056b36
0x400f092b
0x8056a61
-------------------------------------------------------
[BUG] Segmentation fault
ruby 1.9.0 (2007-05-17) [i686-linux]

Aborted (core dumped)


disasm seems to not like local_table being set to NULL when there are
dynamic variables.

Paul