pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: docode.c,v 1.186 2006/03/02 10:24:47 grubba Exp $ + || $Id: docode.c,v 1.187 2006/03/15 12:29:02 grubba Exp $   */      #include "global.h"   #include "las.h"   #include "program.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"
pike.git/src/docode.c:2067:    current_label->break_label=alloc_label();    if (TEST_COMPAT(7,0))    current_label->continue_label = current_label->break_label;       DO_CODE_BLOCK(CAR(n));       ins_label(current_label->break_label);    emit0(F_EXIT_CATCH);    POP_STATEMENT_LABEL;    current_switch.jumptable = prev_switch_jumptable; -  tmp2 = do_branch (-1); +  do_branch (tmp1);    -  ins_label(DO_NOT_WARN((INT32)tmp1)); +     current_stack_depth++;    /* Entry point called via catching_eval_instruction() after -  * catching an error. */ +  * catching an error. +  * +  * NB: This is reached by subtracting ENTRY_PROLOGUE_SIZE +  * from the label below. +  * NB: The label must be after the entry, since it may expand to code +  * that requires the entry code to have run. +  */    emit0(F_ENTRY); -  +  ins_label(DO_NOT_WARN((INT32)tmp1));    -  ins_label(DO_NOT_WARN((INT32)tmp2)); +     POP_AND_DONT_CLEANUP;    return 1;    }       case F_LVALUE_LIST:    ret = do_docode(CAR(n),DO_LVALUE);    return ret + do_docode(CDR(n),DO_LVALUE);       case F_ARRAY_LVALUE:    tmp1=do_docode(CAR(n),DO_LVALUE);