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.324 2004/03/13 13:22:40 grubba Exp $ + || $Id: las.c,v 1.325 2004/03/15 15:24:29 grubba Exp $   */      #include "global.h" - RCSID("$Id: las.c,v 1.324 2004/03/13 13:22:40 grubba Exp $"); + RCSID("$Id: las.c,v 1.325 2004/03/15 15:24:29 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:1246:    node *n;    /* Force resolving since we don't want to get tangled up in the    * placeholder object here. The problem is really that the    * placeholder purport itself to contain every identifier, which    * makes it hide the real ones in find_module_identifier. This    * kludge will fail if the class being placeholded actually contains    * these identifiers, but then again I think it's a bit odd in the    * first place to look up these efuns in the module being compiled.    * Wouldn't it be better if this function consulted    * compiler_handler->get_default_module? /mast */ -  int orig_flags = Pike_compiler->flags; -  Pike_compiler->flags |= COMPILATION_FORCE_RESOLVE; +  int orig_flags; +  SET_FORCE_RESOLVE(orig_flags);    name = make_shared_string(function);    if(!name || !(n=find_module_identifier(name,0)))    {    free_string(name);    my_yyerror("Internally used efun undefined: %s",function); -  Pike_compiler->flags = orig_flags; +  UNSET_FORCE_RESOLVE(orig_flags);    return mkintnode(0);    }    free_string(name); -  +  UNSET_FORCE_RESOLVE(orig_flags);    n = mkapplynode(n, args); -  Pike_compiler->flags = orig_flags; +     return n;   }      node *debug_mkopernode(char *oper_id, node *arg1, node *arg2)   {    if(arg1 && arg2)    arg1=mknode(F_ARG_LIST,arg1,arg2);       return mkefuncallnode(oper_id, arg1);   }