pike.git / src / interpret.h

version» Context lines:

pike.git/src/interpret.h: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.   \*/      /* -  * $Id: interpret.h,v 1.27 1999/03/02 03:13:17 hubbe Exp $ +  * $Id: interpret.h,v 1.28 1999/04/07 23:10:06 hubbe Exp $    */   #ifndef INTERPRET_H   #define INTERPRET_H      #include "global.h"   #include "program.h"      #ifndef STRUCT_FRAME_DECLARED   #define STRUCT_FRAME_DECLARED   #endif
pike.git/src/interpret.h:89:   #define ref_push_object(O) do{ struct object *_=(O); debug_malloc_touch(_); _->refs++; sp->u.object=_; sp++->type=T_OBJECT; }while(0)      #define push_svalue(S) do { struct svalue *_=(S); assign_svalue_no_free(sp,_); sp++; }while(0)      #define stack_dup() push_svalue(sp-1)   #define stack_swap() do { struct svalue _=sp[-1]; sp[-1]=sp[-2]; sp[-2]=_; } while(0)      #define free_pike_frame(F) do{ struct pike_frame *f_=(F); debug_malloc_touch(f_); if(!--f_->refs) really_free_pike_frame(f_); }while(0)      #define POP_PIKE_FRAME() do { \ -  struct pike_frame *tmp_=fp; \ -  fp=tmp_->next; \ -  if(!--tmp_->refs) \ +  struct pike_frame *tmp_=fp->next; \ +  if(!--fp->refs) \    { \ -  really_free_pike_frame(tmp_); \ +  really_free_pike_frame(fp); \    }else{ \ -  if(tmp_->num_locals) \ +  DO_IF_DEBUG(if( fp->locals+fp->num_locals>sp) fatal("Stack failiure in POP_PIKE_FRAME!\n")); \ +  if(fp->num_locals) \    { \    struct svalue *s=(struct svalue *)xalloc(sizeof(struct svalue)* \ -  tmp_->num_locals); \ -  assign_svalues_no_free(s,tmp_->locals,tmp_->num_locals,BIT_MIXED);\ -  tmp_->locals=s; \ -  tmp_->malloced_locals=1; \ +  fp->num_locals); \ +  assign_svalues_no_free(s,fp->locals,fp->num_locals,BIT_MIXED); \ +  fp->locals=s; \ +  fp->malloced_locals=1; \    }else{ \ -  tmp_->locals=0; \ +  fp->locals=0; \    } \ -  tmp_->next=0; \ +  fp->next=0; \    } \ -  +  fp=tmp_; \    }while(0)         enum apply_type   {    APPLY_STACK, /* The function is the first argument */    APPLY_SVALUE, /* arg1 points to an svalue containing the function */    APPLY_LOW /* arg1 is the object pointer,(int)arg2 the function */   };