pike.git / src / las.c

version» Context lines:

pike.git/src/las.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: las.c,v 1.78 1999/03/26 23:40:56 grubba Exp $"); + RCSID("$Id: las.c,v 1.79 1999/05/01 17:25:49 grubba 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:767:    {    DECLARE_CYCLIC();    if(BEGIN_CYCLIC(sp[-1].u.refs, id))    {    my_yyerror("Recursive module dependency in '%s'.",id->str);    pop_stack();    push_int(0);    }else{    SET_CYCLIC_RET(1);    ref_push_string(id); +  { +  struct svalue *save_sp = sp-2; +  JMP_BUF recovery; +  if (SETJMP(recovery)) { +  /* f_index() threw an error! +  * +  * FIXME: Report the error thrown. +  */ +  if (sp > save_sp) { +  pop_n_elems(sp - save_sp); +  } else if (sp != save_sp) { +  fatal("f_index() munged stack!\n"); +  } +  push_int(0); +  sp[-1].subtype = NUMBER_UNDEFINED; +  } else {    f_index(2); -  +  } +  }       if(sp[-1].type == T_INT &&    !sp[-1].u.integer &&    sp[-1].subtype==NUMBER_UNDEFINED)    {    if (node_name) {    my_yyerror("Index '%s' not present in module '%s'.",    id->str, node_name);    } else {    my_yyerror("Index '%s' not present in module.", id->str);