[Openmcl-cvs-notifications] r13175 - in /trunk/source/lisp-kernel: image.c x86-gc.c
gb at clozure.com
gb at clozure.com
Sat Nov 7 17:12:07 EST 2009
Author: gb
Date: Sat Nov 7 17:12:07 2009
New Revision: 13175
Log:
image.c: use imm_word_count() to determine x8632 function immediate/node
sizes. Bug() if we overrun the area bounds (which we were doing if
a "large" function was in the area.)
x86-gc.c: don't make imm_word_count() static inline; hopefully, calls
to it from inside this file will still inline.
Modified:
trunk/source/lisp-kernel/image.c
trunk/source/lisp-kernel/x86-gc.c
Modified: trunk/source/lisp-kernel/image.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/image.c (original)
+++ trunk/source/lisp-kernel/image.c Sat Nov 7 17:12:07 2009
@@ -64,8 +64,10 @@
#ifdef X8664
int skip =3D ((int) start[1])+1;
#else
- int skip =3D ((unsigned short)start[1])+1;
extern void update_self_references(LispObj *);
+ extern natural imm_word_count(LispObj);
+
+ natural skip =3D (natural)imm_word_count(((LispObj)start)+fulltag_=
misc)+1;
update_self_references(start);
#endif
=
@@ -90,6 +92,9 @@
}
++start;
}
+ }
+ if (start > end) {
+ Bug(NULL, "Overran area bounds in relocate_area_contents");
}
}
=
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 Sat Nov 7 17:12:07 2009
@@ -27,7 +27,7 @@
#include <sys/time.h>
=
#ifdef X8632
-static inline natural
+inline natural
imm_word_count(LispObj fn)
{
natural w =3D ((unsigned short *)fn)[-1];
More information about the Openmcl-cvs-notifications
mailing list