pike.git / src / las.c

version» Context lines:

pike.git/src/las.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: las.c,v 1.310 2002/11/21 11:47:50 grubba Exp $ + || $Id: las.c,v 1.311 2002/11/23 15:11:05 mast Exp $   */      #include "global.h" - RCSID("$Id: las.c,v 1.310 2002/11/21 11:47:50 grubba Exp $"); + RCSID("$Id: las.c,v 1.311 2002/11/23 15:11:05 mast Exp $");      #include "language.h"   #include "interpret.h"   #include "las.h"   #include "array.h"   #include "object.h"   #include "stralloc.h"   #include "dynamic_buffer.h"   #include "lex.h"   #include "pike_types.h"
pike.git/src/las.c:1900:    }else{    struct svalue thrown = {PIKE_T_UNKNOWN, 0,   #ifdef HAVE_UNION_INIT    {0} /* Only to avoid warnings. */   #endif    };       SET_CYCLIC_RET(c+1);    ref_push_string(id);    { -  struct svalue *save_sp = Pike_sp-2; +     JMP_BUF recovery; -  if (SETJMP(recovery)) { +  STACK_LEVEL_START(2); +  if (SETJMP_SP(recovery, 2)) {    /* f_index() threw an error! */ -  if (Pike_sp > save_sp) { -  pop_n_elems(Pike_sp - save_sp); -  } else if (Pike_sp != save_sp) { -  Pike_fatal("f_index() munged stack!\n"); -  } +     push_undefined();    thrown = throw_value;    throw_value.type = T_INT;    } else {    f_index(2);    } -  +  STACK_LEVEL_DONE(1);    UNSETJMP(recovery);    }       if(Pike_sp[-1].type == T_INT &&    !Pike_sp[-1].u.integer &&    Pike_sp[-1].subtype==NUMBER_UNDEFINED)    {    if(Pike_compiler->new_program->flags & PROGRAM_PASS_1_DONE)    {    if (node_name) {