pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   #include "global.h" - RCSID("$Id: docode.c,v 1.10 1997/01/30 03:51:32 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.11 1997/02/14 04:45:57 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "language.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "macros.h"   #include "error.h"
pike.git/src/docode.c:278:    tmp1=do_docode(CAR(n),0);    if(tmp1!=1)    {    fatal("Internal compiler error, Yikes!\n");    }    emit2(F_PUSH_ARRAY);    return -0x7ffffff;       case '?':    { +  INT32 *prev_switch_jumptable = current_switch_jumptable;    int adroppings , bdroppings; -  +  current_switch_jumptable=0;    -  +     if(!CDDR(n))    {    tmp1=alloc_label();    do_jump_when_zero(CAR(n), tmp1);    DO_CODE_BLOCK(CADR(n));    emit(F_LABEL, tmp1); -  +  current_switch_jumptable = prev_switch_jumptable;    return 0;    }       if(!CADR(n))    {    tmp1=alloc_label();    do_jump_when_non_zero(CAR(n), tmp1);    DO_CODE_BLOCK(CDDR(n));    emit(F_LABEL,tmp1); -  +  current_switch_jumptable = prev_switch_jumptable;    return 0;    }       tmp1=alloc_label();    do_jump_when_zero(CAR(n),tmp1);       adroppings=do_docode(CADR(n), flags);    tmp3=emit(F_POP_N_ELEMS,0);       /* Else */
pike.git/src/docode.c:321:    do_pop(bdroppings - adroppings);    }       if(adroppings > bdroppings)    {    update_arg(tmp3,adroppings-bdroppings);    adroppings=bdroppings;    }       emit(F_LABEL, tmp2); +  +  current_switch_jumptable = prev_switch_jumptable;    return adroppings;    }       case F_AND_EQ:    case F_OR_EQ:    case F_XOR_EQ:    case F_LSH_EQ:    case F_RSH_EQ:    case F_ADD_EQ:    case F_SUB_EQ: