From: Nobuyoshi Nakada Date: 2007-05-17T10:39:17+09:00 Subject: Re: [ ruby-Bugs-10527 ] segfault printing instruction sequence for iterator Hi, At Thu, 17 May 2007 07:01:19 +0900, Paul Brannan wrote in [ruby-core:11188]: > After a little more experiment, it does seem to fix the reported > problem, but now valgrind is giving me this when I call disasm: Can you tell which disasm emits this? > == disasm: @>===================================== > 0000 trace 1 ( 1) > 0002 putobject 1 > 0004 putobject 1 > 0006 opt_plus > 0007 leave > == disasm: @>===================================== > local table (size: 1, argc: 0 [opts: 0, rest: -1, block: -1] c) > [ 1] ? I'm not sure if opts is needed in TOPLEVEL and CLASS types. Index: compile.c =================================================================== --- compile.c (revision 12284) +++ compile.c (working copy) @@ -4771,7 +4771,5 @@ iseq_build_from_ary(rb_iseq_t *iseq, VAL DECL_ANCHOR(anchor); - if (iseq->type == ISEQ_TYPE_METHOD || - iseq->type == ISEQ_TYPE_TOP || - iseq->type == ISEQ_TYPE_CLASS) { + if (iseq->type == ISEQ_TYPE_METHOD) { opt = 1; } -- Nobu Nakada