diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | iseq.c | 6 |
2 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Thu Nov 1 21:19:56 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * iseq.c (set_relation): parent_iseq need to be set regardless iseq + type. fix r37397. + Thu Nov 1 19:47:23 2012 Nobuyoshi Nakada <nobu@ruby-lang.org> * thread_pthread.c (RUBY_STACK_MIN): may not a compile time constant. @@ -199,6 +199,7 @@ set_relation(rb_iseq_t *iseq, const VALUE parent) { const VALUE type = iseq->type; rb_thread_t *th = GET_THREAD(); + rb_iseq_t *piseq; /* set class nest stack */ if (type == ISEQ_TYPE_TOP) { @@ -221,10 +222,13 @@ set_relation(rb_iseq_t *iseq, const VALUE parent) iseq->local_iseq = iseq; } else if (RTEST(parent)) { - rb_iseq_t *piseq; GetISeqPtr(parent, piseq); iseq->cref_stack = piseq->cref_stack; iseq->local_iseq = piseq->local_iseq; + } + + if (RTEST(parent)) { + GetISeqPtr(parent, piseq); iseq->parent_iseq = piseq; } } |