X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fentry.lisp;h=d2ace4c7b2cdd42ce889132e4e9ad02d6ce4f28b;hb=6242b9f8336fee3c0b0e473efb414e39ed3b92c7;hp=6863e053fb92673a956d929a4ac8854a5f171c99;hpb=cb83aa22932bf4b9bc74ac6f0fcd91db1702ad33;p=sbcl.git diff --git a/src/compiler/entry.lisp b/src/compiler/entry.lisp index 6863e05..d2ace4c 100644 --- a/src/compiler/entry.lisp +++ b/src/compiler/entry.lisp @@ -43,12 +43,20 @@ (setf (entry-info-offset info) (gen-label)) (setf (entry-info-name info) (leaf-debug-name internal-fun)) - (setf (entry-info-xref info) - (pack-xref-data (functional-xref internal-fun))) + (let ((doc (functional-documentation internal-fun)) + (xrefs (pack-xref-data (functional-xref internal-fun)))) + (setf (entry-info-info info) (if (and doc xrefs) + (cons doc xrefs) + (or doc xrefs)))) (when (policy bind (>= debug 1)) (let ((args (functional-arg-documentation internal-fun))) (aver (not (eq args :unspecified))) - (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). + (setf (entry-info-arguments info) + (constant-value (find-constant args)))) (setf (entry-info-type info) (type-specifier (leaf-type internal-fun))))) (values))