pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:266:   #endif    switch(x)    {    case 0: return;    case 1: emit0(F_POP_VALUE); break;    default: emit1(F_POP_N_ELEMS,x); break;    }    modify_stack_depth(-x);   }    + static void do_pop_cleanup(void *x) + { +  do_pop((int)(ptrdiff_t)x); + } +    static void do_pop_mark(void *UNUSED(ignored))   {    struct compilation *c = THIS_COMPILATION;    emit0(F_POP_MARK);   }      static void do_pop_to_mark(void *UNUSED(ignored))   {    struct compilation *c = THIS_COMPILATION;    emit0(F_POP_TO_MARK);
pike.git/src/docode.c:1701:       if(CDDR(arr))    {    do_docode(CDDR(arr), DO_LVALUE);    }else{    emit0(F_CONST0);    emit0(F_CONST0);    modify_stack_depth(2);    }    -  PUSH_CLEANUP_FRAME(do_pop, 5); +  PUSH_CLEANUP_FRAME(do_pop_cleanup, 5);       PUSH_STATEMENT_LABEL;    current_switch.jumptable=0;    current_label->break_label=alloc_label();    current_label->continue_label=alloc_label();       /* Doubt it's necessary to use a label separate from    * current_label->break_label, but I'm playing safe. /mast */    tmp3 = alloc_label();    do_jump(F_FOREACH_START, (INT32) tmp3);
pike.git/src/docode.c:1765:    emit0(F_POP_VALUE);    emit0(F_CONST0);    low_insert_label((INT32)tmp1);    goto foreach_arg_pushed;    }    }    do_docode(arr,DO_NOT_COPY);    emit0(F_CONST0);    modify_stack_depth(1);    foreach_arg_pushed: -  PUSH_CLEANUP_FRAME(do_pop, 4); +  PUSH_CLEANUP_FRAME(do_pop_cleanup, 4);       PUSH_STATEMENT_LABEL;    current_switch.jumptable=0;    current_label->break_label=alloc_label();    current_label->continue_label=alloc_label();       tmp3=do_branch(-1);    tmp1=ins_label(-1);    DO_CODE_BLOCK(CDR(n));    ins_label(current_label->continue_label);
pike.git/src/docode.c:1796:       case F_INC_NEQ_LOOP:    case F_DEC_NEQ_LOOP:    case F_INC_LOOP:    case F_DEC_LOOP:    {    INT32 *prev_switch_jumptable = current_switch.jumptable;    BLOCK_BEGIN;       do_docode(CAR(n),0); -  PUSH_CLEANUP_FRAME(do_pop, 3); +  PUSH_CLEANUP_FRAME(do_pop_cleanup, 3);       PUSH_STATEMENT_LABEL;    current_switch.jumptable=0;    current_label->break_label=alloc_label();    current_label->continue_label=alloc_label();    tmp3=do_branch(-1);    tmp1=ins_label(-1);       DO_CODE_BLOCK(CDR(n));    ins_label(current_label->continue_label);