pike.git / src / interpret.c

version» Context lines:

pike.git/src/interpret.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: interpret.c,v 1.198 2001/05/14 06:31:12 hubbe Exp $"); + RCSID("$Id: interpret.c,v 1.199 2001/05/14 17:51:20 grubba Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"   #include "svalue.h"   #include "array.h"   #include "mapping.h"   #include "pike_error.h"   #include "language.h"   #include "stralloc.h"   #include "constants.h"
pike.git/src/interpret.c:852:    fprintf(stderr,"- %s:%4ld: %s\n",file,(long)linep,s);    free(s);   }         #undef INIT_BLOCK   #define INIT_BLOCK(X) do { \    X->refs=1; \    X->flags=0; \    X->scope=0; \ -  DO_IF_SECURITY( if(CURRENT_CREDS) \ -  add_ref(X->current_creds=CURRENT_CREDS); ) \ +  DO_IF_SECURITY( if(CURRENT_CREDS) { \ +  add_ref(X->current_creds=CURRENT_CREDS); \ +  } else { \ +  X->current_creds = 0; \ +  }) \   }while(0)      #undef EXIT_BLOCK   #define EXIT_BLOCK(X) do { \    free_object(X->current_object); \    if(X->context.prog) free_program(X->context.prog); \    if(X->context.parent) free_object(X->context.parent); \    if(X->scope) free_pike_frame(X->scope); \ -  DO_IF_SECURITY( if(X->current_creds) free_object(X->current_creds); ) \ +  DO_IF_SECURITY( if(X->current_creds) { \ +  free_object(X->current_creds); \ +  }) \    if(X->flags & PIKE_FRAME_MALLOCED_LOCALS) \    { \    free_svalues(X->locals,X->num_locals,BIT_MIXED); \    free((char *)(X->locals)); \    } \    DO_IF_DMALLOC( \    X->context.prog=0; \    X->context.parent=0; \    X->context.name=0; \    X->scope=0; \    X->current_object=0; \    X->flags=0; \    X->expendible=0; \    X->locals=0; \ -  +  DO_IF_SECURITY( X->current_creds=0; ) \    ) \   }while(0)      BLOCK_ALLOC(pike_frame,128)         int low_mega_apply(enum apply_type type, INT32 args, void *arg1, void *arg2)   {    struct object *o;    struct pike_frame *scope=0;