pike.git / src / program.h

version» Context lines:

pike.git/src/program.h: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: program.h,v 1.201 2004/03/16 12:46:51 grubba Exp $ + || $Id: program.h,v 1.202 2004/04/18 02:16:06 mast Exp $   */      #ifndef PROGRAM_H   #define PROGRAM_H      #include <stdarg.h>   #include "global.h"   #include "pike_macros.h"   #include "pike_error.h"   #include "svalue.h"
pike.git/src/program.h:557:   #define INHERIT_FROM_PTR(P,X) (dmalloc_touch(struct program *,(P))->inherits + (X)->inherit_offset)   #define PROG_FROM_PTR(P,X) (dmalloc_touch(struct program *,INHERIT_FROM_PTR(P,X)->prog))   #define ID_FROM_PTR(P,X) (PROG_FROM_PTR(P,X)->identifiers+(X)->identifier_offset)   #define INHERIT_FROM_INT(P,X) INHERIT_FROM_PTR(P, PTR_FROM_INT(P, X))   #define PROG_FROM_INT(P,X) PROG_FROM_PTR(P, PTR_FROM_INT(P, X))   #define ID_FROM_INT(P,X) ID_FROM_PTR(P, PTR_FROM_INT(P, X))      #define FIND_LFUN(P,N) ( dmalloc_touch(struct program *,(P))->flags & PROGRAM_FIXED?((P)->lfuns[(N)]):low_find_lfun((P), (N)) )   #define QUICK_FIND_LFUN(P,N) (dmalloc_touch(struct program *,(P))->lfuns[N])    - #define free_program(p) do{ struct program *_=(p); debug_malloc_touch(_); if(!sub_ref(_)) really_free_program(_); }while(0) + #define free_program(p) do{ \ +  struct program *_=(p); \ +  debug_malloc_touch(_); \ +  DO_IF_PIKE_CLEANUP ( \ +  if (gc_external_refs_zapped) \ +  gc_check_zapped (_, PIKE_T_PROGRAM, __FILE__, __LINE__); \ +  ); \ +  if(!sub_ref(_)) \ +  really_free_program(_); \ +  }while(0)      BLOCK_ALLOC_FILL_PAGES(program, n/a)         extern struct object *error_handler;   extern struct object *compat_handler;      extern struct program *first_program;   extern struct program *null_program;   extern struct program *pike_trampoline_program;