pike.git
/
src
/
program.h
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/program.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: program.h,v 1.
47
1999/01/
21
09:
15
:
15
hubbe Exp $
+
* $Id: program.h,v 1.
48
1999/01/
31
09:
02
:
02
hubbe Exp $
*/ #ifndef PROGRAM_H #define PROGRAM_H #include <stdarg.h> #include "global.h" #include "pike_types.h" #include "svalue.h" #include "time_stuff.h"
pike.git/src/program.h:225:
#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,(P)->identifier_references+(X)) #define PROG_FROM_INT(P,X) PROG_FROM_PTR(P,(P)->identifier_references+(X)) #define ID_FROM_INT(P,X) ID_FROM_PTR(P,(P)->identifier_references+(X)) #define FIND_LFUN(P,N) ((P)->flags & PROGRAM_FIXED?(P)->lfuns[(N)]:find_identifier(lfun_names[(N)],(P))) #define free_program(p) do{ struct program *_=(p); debug_malloc_touch(_); if(!--_->refs) really_free_program(_); }while(0)
+
struct pike_trampoline
+
{
+
struct pike_frame *frame;
+
INT32 func;
+
};
+
+
extern struct object *fake_object; extern struct program *new_program; extern struct program *first_program; extern int compiler_pass; extern long local_class_counter; extern int catch_level; extern INT32 num_used_modules;
-
+
extern struct program *pike_trampoline_program;
#define COMPILER_IN_CATCH 1 #define FOO(NUMTYPE,TYPE,NAME) void PIKE_CONCAT(add_to_,NAME(TYPE ARG)); #include "program_areas.h" /* Prototypes begin here */ void ins_int(INT32 i, void (*func)(char tmp)); void ins_short(INT16 i, void (*func)(char tmp)); void use_module(struct svalue *s);
pike.git/src/program.h:354:
struct array *program_values(struct program *p); void program_index_no_free(struct svalue *to, struct program *p, struct svalue *ind); void start_line_numbering(void); void store_linenumber(INT32 current_line, struct pike_string *current_file); char *get_line(unsigned char *pc,struct program *prog,INT32 *linep); void my_yyerror(char *fmt,...) ATTRIBUTE((format(printf,1,2))); struct program *compile(struct pike_string *prog); int add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags); void check_all_programs(void);
+
void init_program(void);
void cleanup_program(void); void gc_mark_program_as_referenced(struct program *p); void gc_check_all_programs(void); void gc_mark_all_programs(void); void gc_free_all_unreferenced_programs(void); void count_memory_in_programs(INT32 *num_, INT32 *size_);
-
void push_compiler_frame(
void
);
+
void push_compiler_frame(
int lexical_scope
);
void pop_local_variables(int level); void pop_compiler_frame(void); int low_get_storage(struct program *o, struct program *p); char *get_storage(struct object *o, struct program *p); struct program *low_program_from_function(struct program *p, INT32 i); struct program *program_from_function(struct svalue *f); struct program *program_from_svalue(struct svalue *s); struct find_child_cache_s; int find_child(struct program *parent, struct program *child); void yywarning(char *fmt, ...) ATTRIBUTE((format(printf,1,2))); struct implements_cache_s; int implements(struct program *a, struct program *b);
-
void f_encode_program(INT32 args);
+
/* Prototypes end here */ #endif #ifdef DEBUG_MALLOC #define end_program() ((struct program *)debug_malloc_touch(debug_end_program())) #define end_class(NAME, FLAGS) do { debug_malloc_touch(new_program); debug_end_class(NAME, FLAGS); }while(0) #else #define end_class debug_end_class #define end_program debug_end_program #endif