[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