From: Juho Snellman <jsnell@us...> - 2007-03-02 04:36:07
Update of /cvsroot/sbcl/sbcl/src/compiler/x86
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv10024/src/compiler/x86
18.104.22.168: Fix deportation gc safety bug
* Pin objects that are deported by taking a SAP to a GCd object
* In some cases the object that the SAP is taken to isn't actually
EQ to the one that was deported -> split deportation into
separate alien-type-class-methods for the allocation and the
* Don't do pinning on non-x86oids, since we can't really disable
the GC during all alien calls.
RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86/macros.lisp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- macros.lisp 29 Jan 2007 18:30:25 -0000 1.40
+++ macros.lisp 2 Mar 2007 04:36:03 -0000 1.41
@@ -507,7 +507,7 @@
(move result value)))))
;;; helper for alien stuff.
-(defmacro with-pinned-objects ((&rest objects) &body body)
+(def!macro with-pinned-objects ((&rest objects) &body body)
"Arrange with the garbage collector that the pages occupied by
OBJECTS will not be moved in memory for the duration of BODY.
Useful for e.g. foreign calls where another thread may trigger