diff options
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -6015,7 +6015,7 @@ blk_copy_prev(block) while (block->prev) { tmp = ALLOC_N(struct BLOCK, 1); MEMCPY(tmp, block->prev, struct BLOCK, 1); - if (tmp->frame.argc > 0 && !(tmp->frame.flags & FRAME_MALLOC)) { + if (tmp->frame.argc > 0) { tmp->frame.argv = ALLOC_N(VALUE, tmp->frame.argc); MEMCPY(tmp->frame.argv, block->prev->frame.argv, VALUE, tmp->frame.argc); tmp->frame.flags |= FRAME_MALLOC; @@ -6035,11 +6035,11 @@ frame_dup(frame) struct FRAME *tmp; for (;;) { - if (frame->argc > 0 && !(frame->flags & FRAME_MALLOC)) { + if (frame->argc > 0) { argv = ALLOC_N(VALUE, frame->argc); MEMCPY(argv, frame->argv, VALUE, frame->argc); frame->argv = argv; - frame->flags = FRAME_MALLOC; + frame->flags |= FRAME_MALLOC; } frame->tmp = 0; /* should not preserve tmp */ if (!frame->prev) break; |