Changeset 13259


Ignore:
Timestamp:
Dec 8, 2009, 12:37:31 AM (10 years ago)
Author:
gb
Message:

Use ensure_static_conses() to handle static_cons allocation.
Always purify functions, for now.
Don't zero the PC in exception frames before purify(); expect
purify() to handle locatives.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/purify/source/lisp-kernel/x86-exceptions.c

    r13243 r13259  
    222222
    223223  case GC_TRAP_FUNCTION_ENSURE_STATIC_CONSES:
    224     allocate_static_conses(32768);
     224    ensure_static_conses(xp, tcr, 32768);
    225225    break;
    226226
     
    266266      }
    267267      if (selector & GC_TRAP_FUNCTION_PURIFY) {
    268         /* There should be exactly one xp in the world (this one) if we're saving
    269            an image, and we'll never return to it.  If we copy functions,
    270            we'll have difficulty updating the PC in that xp and a subsequent
    271            GC will be confused by that, so zero it here */       
    272         if (selector & GC_TRAP_FUNCTION_SAVE_APPLICATION) {
    273           xpPC(xp)=(LispObj)0;
    274         }
    275         purify_from_xp(xp, selector & GC_TRAP_FUNCTION_SAVE_APPLICATION);
     268        purify_from_xp(xp, 1);
    276269        gc_from_xp(xp, 0L);
    277270      }
Note: See TracChangeset for help on using the changeset viewer.