1.0.32.26: Fix fasdumping of function arglists with instances as default values
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Thu, 12 Nov 2009 00:10:21 +0000 (00:10 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Thu, 12 Nov 2009 00:10:21 +0000 (00:10 +0000)
  Fasdumping of a function arglist was breaking if there was a structure
or other instance as a default value because the arglist wasn't
processed for dumping as a literal constant.

  * Process the arglist for dumping as a literal constant when creating
entry-info for external entry points.

  This is https://bugs.launchpad.net/sbcl/+bug/310132 .

src/compiler/entry.lisp
version.lisp-expr

index ae95297..83d5a00 100644 (file)
     (when (policy bind (>= debug 1))
       (let ((args (functional-arg-documentation internal-fun)))
         (aver (not (eq args :unspecified)))
-        (setf (entry-info-arguments info) args))
+        (setf (entry-info-arguments info) args)
+        ;; When the component is dumped, the arglists of the entry
+        ;; points will be dumped.  If they contain values that need
+        ;; make-load-form processing then we need to do it now (bug
+        ;; 310132).
+        (maybe-emit-make-load-forms args))
       (setf (entry-info-type info) (type-specifier (leaf-type internal-fun)))))
   (values))
 
index a60c1c1..4ab56a6 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.32.25"
+"1.0.32.26"