From: Alastair Bridgewater Date: Tue, 25 Oct 2011 20:43:13 +0000 (-0400) Subject: Fix MAYBE-WITH-PINNED-OBJECTS for PPC/GENCGC. X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=a743f02226d235f461a0bc5aeddcf63e8ac0dcf3;p=sbcl.git Fix MAYBE-WITH-PINNED-OBJECTS for PPC/GENCGC. * 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. --- diff --git a/src/code/host-alieneval.lisp b/src/code/host-alieneval.lisp index 0009b68..c29bdd5 100644 --- a/src/code/host-alieneval.lisp +++ b/src/code/host-alieneval.lisp @@ -468,10 +468,10 @@ (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)