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.84 1999/08/20 06:01:30 mast Exp $"); + RCSID("$Id: las.c,v 1.85 1999/09/06 11:13:17 hubbe 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:576:    }else{    res->node_info = OPT_NOT_CONST;    }    res->tree_info=res->node_info;      #ifdef __CHECKER__    CDR(res)=0;   #endif    res->u.integer.a = level;    res->u.integer.b = i; +  +  /* Bzot-i-zot */ +  new_program->flags |= PROGRAM_USES_PARENT; +     return res;   }      node *mkcastnode(struct pike_string *type,node *n)   {    node *res;    if(!n) return 0;    if(type==n->type) return n;    res = mkemptynode();    res->token = F_CAST;
pike.git/src/las.c:2315:    if(throw_value.type == T_ARRAY && throw_value.u.array->size)    {    union anything *a;    a=low_array_get_item_ptr(throw_value.u.array, 0, T_STRING);    if(a)    {    yyerror(a->string->str);    }else{    yyerror("Nonstandard error format.");    } -  }else{ +  } +  else if(throw_value.type == T_OBJECT) +  { +  ref_push_object(throw_value.u.object); +  push_int(0); +  f_index(2); +  if(sp[-1].type != T_STRING)    yyerror("Nonstandard error format."); -  +  else +  yyerror(sp[-1].u.string->str); +  pop_stack();    } -  +  else +  { +  yyerror("Nonstandard error format.");    } -  +  }    }else{    if(foo.yes)    pop_n_elems(sp-save_sp);    else    ret=sp-save_sp;    }       remove_callback(tmp_callback);    }