Fix MAYBE-WITH-PINNED-OBJECTS for PPC/GENCGC.
authorAlastair Bridgewater <nyef@arisu.lisphacker.com>
Tue, 25 Oct 2011 20:43:13 +0000 (16:43 -0400)
committerAlastair Bridgewater <nyef@arisu.lisphacker.com>
Tue, 25 Oct 2011 20:43:13 +0000 (16:43 -0400)
  * GENCGC has working WITH-PINNED-OBJECTS on all targets, not
just x86oids.  Not using it when necessary is bad, especially
since non-x86oids don't automatically pin references from the
control stack.  Fixed.

src/code/host-alieneval.lisp

index 0009b68..c29bdd5 100644 (file)
 (def!macro maybe-with-pinned-objects (variables types &body body)
   (declare (ignorable variables types))
   (let ((pin-variables
-         ;; Only pin things on x86/x86-64, since on non-conservative
-         ;; gcs it'd imply disabling the GC. Which is something we
-         ;; don't want to do every time we're calling to C.
-         #!+(or x86 x86-64)
+         ;; Only pin things on GENCGC, since on CHENEYGC it'd imply
+         ;; disabling the GC.  Which is something we don't want to do
+         ;; every time we're calling to C.
+         #!+gencgc
          (loop for variable in variables
             for type in types
             when (invoke-alien-type-method :deport-pin-p type)