pike.git
/
src
/
program.h
version
»
Context lines:
10
20
40
80
file
none
3
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;