Ignore:
Timestamp:
Apr 17, 2011, 11:56:59 PM (11 years ago)
Author:
Sam Hocevar
Message:

lisp: implement LSymbol::EvalFunction? and ensure all local pointers are
protected against collection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • abuse/trunk/src/objects.cpp

    r494 r497  
    266266
    267267    void *m=mark_heap(TMP_SPACE);
    268     eval_function((LSymbol *)ns,NULL);
     268    ((LSymbol *)ns)->EvalFunction(NULL);
    269269    restore_heap(m,TMP_SPACE);
    270270
     
    280280        current_object = this;
    281281        void *m = mark_heap( TMP_SPACE );
    282         (void)eval_function( (LSymbol *)ns, NULL );
     282        ((LSymbol *)ns)->EvalFunction(NULL);
    283283        restore_heap( m, TMP_SPACE );
    284284    }
     
    420420      prof1=new time_marker;
    421421
    422     Cell *ret=(Cell *)eval_function((LSymbol *)figures[otype]->get_fun(OFUN_AI),NULL);
     422    LObject *ret = ((LSymbol *)figures[otype]->get_fun(OFUN_AI))->EvalFunction(NULL);
    423423    if (profiling())
    424424    {
     
    636636      prof1=new time_marker;
    637637
    638     eval_function((LSymbol *)figures[otype]->get_fun(OFUN_DRAW),NULL);
     638    ((LSymbol *)figures[otype]->get_fun(OFUN_DRAW))->EvalFunction(NULL);
    639639    if (profiling())
    640640    {
     
    663663      prof1=new time_marker;
    664664
    665     eval_function((LSymbol *)figures[otype]->get_fun(OFUN_MAP_DRAW),NULL);
     665    ((LSymbol *)figures[otype]->get_fun(OFUN_MAP_DRAW))->EvalFunction(NULL);
    666666    if (profiling())
    667667    {
     
    11701170      prof1=new time_marker;
    11711171
    1172     eval_function((LSymbol *)figures[type]->get_fun(OFUN_CONSTRUCTOR),NULL);
     1172    ((LSymbol *)figures[type]->get_fun(OFUN_CONSTRUCTOR))->EvalFunction(NULL);
    11731173    if (profiling())
    11741174    {
     
    12351235      prof1=new time_marker;
    12361236
    1237     void *r=eval_function((LSymbol *)figures[otype]->get_fun(OFUN_MOVER),
    1238               (void *)lcx);
     1237    LObject *r = ((LSymbol *)figures[otype]->get_fun(OFUN_MOVER))->EvalFunction(lcx);
    12391238    if (profiling())
    12401239    {
     
    16381637      prof1=new time_marker;
    16391638
    1640     eval_function((LSymbol *)figures[new_type]->get_fun(OFUN_CONSTRUCTOR),NULL);
     1639    ((LSymbol *)figures[new_type]->get_fun(OFUN_CONSTRUCTOR))->EvalFunction(NULL);
    16411640    if (profiling())
    16421641    {
Note: See TracChangeset for help on using the changeset viewer.