pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.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: docode.c,v 1.128 2001/08/13 23:15:58 mast Exp $"); + RCSID("$Id: docode.c,v 1.129 2001/08/15 03:31:55 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "pike_macros.h"   #include "pike_error.h"   #include "pike_memory.h"
pike.git/src/docode.c:419:      static inline struct compiler_frame *find_local_frame(INT32 depth)   {    struct compiler_frame *f=Pike_compiler->compiler_frame;    while(--depth>=0) f=f->previous;    return f;   }      int do_lfun_call(int id,node *args)   { -  emit0(F_MARK); -  PUSH_CLEANUP_FRAME(do_pop_mark, 0); -  do_docode(args,0); +    #if 1    if(id == Pike_compiler->compiler_frame->current_function_number)    {    int n=count_args(args);    if(n == Pike_compiler->compiler_frame->num_args)    { -  +  do_docode(args,0);    if(Pike_compiler->compiler_frame->is_inline)    {    Pike_compiler->compiler_frame->recur_label=do_jump(F_RECUR,    Pike_compiler->compiler_frame->recur_label);    }else{    emit1(F_COND_RECUR,id);    Pike_compiler->compiler_frame->recur_label=do_jump(F_POINTER,    Pike_compiler->compiler_frame->recur_label);    } -  +  return 1;    } -  else -  emit1(F_CALL_LFUN, id); +     } -  else +    #endif -  +  +  emit0(F_MARK); +  PUSH_CLEANUP_FRAME(do_pop_mark, 0); +  do_docode(args,0);    emit1(F_CALL_LFUN, id);    POP_AND_DONT_CLEANUP;    return 1;   }      static int do_docode2(node *n, INT16 flags)   {    ptrdiff_t tmp1,tmp2,tmp3;       if(!n) return 0;