[Openmcl-cvs-notifications] r10186 - /trunk/source/lisp-kernel/x86-gc.c

gb at clozure.com gb at clozure.com
Wed Jul 23 12:03:10 EDT 2008


Author: gb
Date: Wed Jul 23 12:03:10 2008
New Revision: 10186

Log:
In purify(), only purify dynamic ivectors that aren't frozen.

Modified:
    trunk/source/lisp-kernel/x86-gc.c

Modified: trunk/source/lisp-kernel/x86-gc.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-gc.c (original)
+++ trunk/source/lisp-kernel/x86-gc.c Wed Jul 23 12:03:10 2008
@@ -2303,12 +2303,12 @@
 =

   TCR  *other_tcr;
   natural max_pure_size;
-  BytePtr new_pure_start;
-
-
-
-  max_pure_size =3D unboxed_bytes_in_range((LispObj *)(a->low + (static_dn=
odes_for_area(a) << dnode_shift)), =

-                                         (LispObj *) a->active);
+  BytePtr new_pure_start,
+    low =3D (a->low + (static_dnodes_for_area(a) << dnode_shift)),
+    high =3D a->active;
+
+
+  max_pure_size =3D unboxed_bytes_in_range((LispObj *) low, (LispObj *) hi=
gh);
   new_pure_area =3D extend_readonly_area(max_pure_size);
   if (new_pure_area) {
     new_pure_start =3D new_pure_area->active;
@@ -2325,16 +2325,16 @@
 =

 =

     =

-    purify_areas(a->low, a->active, new_pure_area);
+    purify_areas(low, high, new_pure_area);
     =

     other_tcr =3D tcr;
     do {
-      purify_tcr_xframes(other_tcr, a->low, a->active, new_pure_area);
-      purify_tcr_tlb(other_tcr, a->low, a->active, new_pure_area);
+      purify_tcr_xframes(other_tcr, low, high, new_pure_area);
+      purify_tcr_tlb(other_tcr, low, high, new_pure_area);
       other_tcr =3D other_tcr->next;
     } while (other_tcr !=3D tcr);
 =

-    purify_gcable_ptrs(a->low, a->active, new_pure_area);
+    purify_gcable_ptrs(low, high, new_pure_area);
     {
       natural puresize =3D (unsigned) (new_pure_area->active-new_pure_star=
t);
       if (puresize !=3D 0) {



More information about the Openmcl-cvs-notifications mailing list