pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /* -  * $Id: interpret_functions.h,v 1.36 2001/01/08 20:04:48 mast Exp $ +  * $Id: interpret_functions.h,v 1.37 2001/01/10 19:56:37 mast Exp $    *    * Opcode definitions for the interpreter.    */      OPCODE0(F_UNDEFINED,"push UNDEFINED")    push_int(0);    Pike_sp[-1].subtype=NUMBER_UNDEFINED;   BREAK;      OPCODE0(F_CONST0, "push 0")
pike.git/src/interpret_functions.h:842:    pop_n_elems(2);    SKIPJUMP();    }else{    pop_n_elems(2);    push_int(0);    DOJUMP();    }    break;       CASE(F_CATCH); -  if(o_catch(pc+sizeof(INT32))) +  switch (o_catch(pc+sizeof(INT32))) { +  case 1:    return -1; /* There was a return inside the evaluated code */ -  else +  case 2: +  pc = Pike_fp->pc; +  break; +  default:    pc+=EXTRACT_INT(pc); -  +  }    break;    -  + OPCODE0(F_ESCAPE_CATCH, "escape catch") + { +  Pike_fp->pc = pc; +  return -2; + } + BREAK; +    OPCODE0(F_THROW_ZERO, "throw(0)")    push_int(0);    f_throw(1);   BREAK;      OPCODE1(F_SWITCH, "switch")   {    INT32 tmp;    tmp=switch_lookup(Pike_fp->context.prog->    constants[arg1].sval.u.array,Pike_sp-1);
pike.git/src/interpret_functions.h:1496: Inside #if defined(PIKE_DEBUG)
  #ifdef PIKE_DEBUG    if(args != EXTRACT_UCHAR(addr-1))    fatal("Wrong number of arguments in F_RECUR %d!=%d\n",    args, EXTRACT_UCHAR(addr-1));   #endif       clear_svalues(Pike_sp, num_locals - args);    Pike_sp += num_locals - args;       x=eval_instruction(addr); +  EVAL_INSTR_RET_CHECK(x);   #ifdef PIKE_DEBUG    if(Pike_mark_sp < save_mark_sp)    fatal("mark Pike_sp underflow in F_RECUR.\n");   #endif    Pike_mark_sp=save_mark_sp; -  if(x!=-1) mega_apply(APPLY_STACK, x, 0,0); +  if(x>=0) mega_apply(APPLY_STACK, x, 0,0);    pc+=sizeof(INT32);    if(save_sp+1 < Pike_sp)    {    assign_svalue(save_sp,Pike_sp-1);    pop_n_elems(Pike_sp-save_sp-1);    }    Pike_fp->expendible=expendible;    Pike_fp->locals=locals;    print_return_value();   #ifdef PIKE_DEBUG
pike.git/src/interpret_functions.h:1561: Inside #if defined(PIKE_DEBUG)
     #ifdef PIKE_DEBUG    if(args != EXTRACT_UCHAR(addr-1))    fatal("Wrong number of arguments in F_RECUR %d!=%d\n",args,EXTRACT_UCHAR(addr-1));   #endif       clear_svalues(Pike_sp, num_locals - args);    Pike_sp += num_locals - args;       x=eval_instruction(addr); +  EVAL_INSTR_RET_CHECK(x);   #ifdef PIKE_DEBUG    if(Pike_mark_sp < save_mark_sp)    fatal("mark Pike_sp underflow in F_RECUR.\n");   #endif    Pike_mark_sp=save_mark_sp; -  if(x!=-1) mega_apply(APPLY_STACK, x, 0,0); +  if(x>=0) mega_apply(APPLY_STACK, x, 0,0);    pc+=sizeof(INT32);    if(save_sp+1 < Pike_sp)    {    assign_svalue(save_sp,Pike_sp-1);    pop_n_elems(Pike_sp-save_sp-1);    }    Pike_fp->expendible=expendible;    Pike_fp->locals=locals;    print_return_value();   #ifdef PIKE_DEBUG