diff --git a/src/builtin_efuns.c b/src/builtin_efuns.c index 64ea863c981f090c070bbd1394980d632417050a..c0229c9cc0f17f1a8735197068ec4828a95c7d43 100644 --- a/src/builtin_efuns.c +++ b/src/builtin_efuns.c @@ -351,11 +351,13 @@ void f_backtrace(INT32 args) ITEM(i)[0].subtype=NUMBER_NUMBER; ITEM(i)[0].type=T_INT; } + i->type_field = BIT_FUNCTION | BIT_INT | BIT_STRING; }else{ ITEM(a)[frames].type=T_INT; ITEM(a)[frames].u.integer=0; } } + a->type_field = BIT_ARRAY | BIT_INT; } void f_add_efun(INT32 args) @@ -1202,6 +1204,7 @@ void f_sleep(INT32 args) } } +#ifdef GC2 void f_gc(INT32 args) { INT32 tmp; @@ -1210,6 +1213,7 @@ void f_gc(INT32 args) do_gc(); push_int(tmp - num_objects); } +#endif #ifdef TYPEP #undef TYPEP @@ -1295,7 +1299,9 @@ void init_builtin_efuns() add_efun("upper_case",f_upper_case,"function(string:string)",0); add_efun("values",f_values,"function(string|list:int*)|function(array|mapping|object:mixed*)",0); add_efun("zero_type",f_zero_type,"function(int:int)",0); +#ifdef GC2 add_efun("gc",f_gc,"function(:int)",OPT_SIDE_EFFECT); +#endif } diff --git a/src/config.h b/src/config.h index d905a755de9f2ddb1e75645488916210c2703b45..6fccd9fecb97005300efe6dd6bd0dd9b07e1e934 100644 --- a/src/config.h +++ b/src/config.h @@ -36,7 +36,9 @@ /* * Undefine this to disable garabge collection */ +#ifndef NO_GC #define GC2 +#endif /*