diff --git a/src/program.c b/src/program.c index 1404abcd44425c044a53b0231c6428557e9bab96..9e6047a5f12d5b1c814f9c597a4330ebc24f867e 100644 --- a/src/program.c +++ b/src/program.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: program.c,v 1.72 1998/04/08 01:32:35 hubbe Exp $"); +RCSID("$Id: program.c,v 1.73 1998/04/09 02:49:48 hubbe Exp $"); #include "program.h" #include "object.h" #include "dynamic_buffer.h" @@ -644,7 +644,7 @@ static void toss_compilation_resources(void) } -static int sizeof_variable(int run_time_type) +int sizeof_variable(int run_time_type) { switch(run_time_type) { @@ -2044,8 +2044,9 @@ struct program *compile(struct pike_string *prog) return p; } -void add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags) +int add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags) { + int ret; struct pike_string *name_tmp,*type_tmp; union idptr tmp; @@ -2055,20 +2056,21 @@ void add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags) if(cfun) { tmp.c_fun=cfun; - define_function(name_tmp, - type_tmp, - flags, - IDENTIFIER_C_FUNCTION, - &tmp); + ret=define_function(name_tmp, + type_tmp, + flags, + IDENTIFIER_C_FUNCTION, + &tmp); }else{ - define_function(name_tmp, - type_tmp, - flags, - IDENTIFIER_C_FUNCTION, - 0); + ret=define_function(name_tmp, + type_tmp, + flags, + IDENTIFIER_C_FUNCTION, + 0); } free_string(name_tmp); free_string(type_tmp); + return ret; } #ifdef DEBUG diff --git a/src/program.h b/src/program.h index 6dffebc1178c2e7b9b0c7fcc52fb7d3a72f9d0d6..eb3be4ccd2e0ab70446a5622cd5a5ed387be435f 100644 --- a/src/program.h +++ b/src/program.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: program.h,v 1.37 1998/04/08 01:00:58 hubbe Exp $ + * $Id: program.h,v 1.38 1998/04/09 02:49:48 hubbe Exp $ */ #ifndef PROGRAM_H #define PROGRAM_H @@ -250,6 +250,7 @@ void low_start_new_program(struct program *p, void start_new_program(void); void really_free_program(struct program *p); void dump_program_desc(struct program *p); +int sizeof_variable(int run_time_type); void check_program(struct program *p); struct program *end_first_pass(int finish); struct program *debug_end_program(void); @@ -338,7 +339,7 @@ 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); -void add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags); +int add_function(char *name,void (*cfun)(INT32),char *type,INT16 flags); void check_all_programs(void); void cleanup_program(void); void gc_mark_program_as_referenced(struct program *p);