Skip to content
Snippets Groups Projects
Commit e3a26eab authored by Fredrik Hübinette (Hubbe)'s avatar Fredrik Hübinette (Hubbe)
Browse files

construcor/destructor calls optimized

Rev: src/object.c:1.10
Rev: src/object.h:1.6
parent b0ddc599
No related branches found
No related tags found
No related merge requests found
...@@ -103,9 +103,9 @@ struct object *clone(struct program *p, int args) ...@@ -103,9 +103,9 @@ struct object *clone(struct program *p, int args)
o->refs++; o->refs++;
} }
apply(o,"__INIT",0); apply_lfun(o,LFUN___INIT,0);
pop_stack(); pop_stack();
apply(o,"create",args); apply_lfun(o,LFUN_CREATE,args);
pop_stack(); pop_stack();
return o; return o;
...@@ -163,8 +163,11 @@ void destruct(struct object *o) ...@@ -163,8 +163,11 @@ void destruct(struct object *o)
o->refs++; o->refs++;
safe_apply(o, "destroy", 0); if(o->prog->lfuns[LFUN_DESTROY] != -1)
{
safe_apply_low(o, o->prog->lfuns[LFUN_DESTROY], 0);
pop_stack(); pop_stack();
}
/* destructed in destroy() */ /* destructed in destroy() */
if(!o->prog) if(!o->prog)
......
...@@ -29,6 +29,8 @@ extern struct object *first_object; ...@@ -29,6 +29,8 @@ extern struct object *first_object;
#define GET_GLOBAL(O,I) LOW_GET_GLOBAL(O,I,ID_FROM_INT((O)->prog,I)) #define GET_GLOBAL(O,I) LOW_GET_GLOBAL(O,I,ID_FROM_INT((O)->prog,I))
#define GLOBAL_FROM_INT(I) GET_GLOBAL(fp->current_object, I) #define GLOBAL_FROM_INT(I) GET_GLOBAL(fp->current_object, I)
#define this_object() (fp->current_object->refs++,fp->current_object)
/* Prototypes begin here */ /* Prototypes begin here */
void setup_fake_object(); void setup_fake_object();
struct object *clone(struct program *p, int args); struct object *clone(struct program *p, int args);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment