changeset 47531:e7f753af9ceb

(byte-compile-output-docform): Don't make the definition dynamic if it shares structure with the arg list.
author Richard M. Stallman <rms@gnu.org>
date Wed, 18 Sep 2002 16:02:49 +0000
parents cfea5643ff62
children e5d8cf249294
files lisp/emacs-lisp/bytecomp.el
diffstat 1 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/bytecomp.el	Wed Sep 18 16:02:14 2002 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Wed Sep 18 16:02:49 2002 +0000
@@ -10,7 +10,7 @@
 
 ;;; This version incorporates changes up to version 2.10 of the
 ;;; Zawinski-Furuseth compiler.
-(defconst byte-compile-version "$Revision: 2.113 $")
+(defconst byte-compile-version "$Revision: 2.114 $")
 
 ;; This file is part of GNU Emacs.
 
@@ -1924,7 +1924,18 @@
 	   (while (setq form (cdr form))
 	     (setq index (1+ index))
 	     (insert " ")
-	     (cond ((and (numberp specindex) (= index specindex))
+	     (cond ((and (numberp specindex) (= index specindex)
+			 ;; Don't handle the definition dynamically
+			 ;; if it refers (or might refer)
+			 ;; to objects already output
+			 ;; (for instance, gensyms in the arg list).
+			 (let (non-nil)
+			   (dotimes (i (length print-number-table))
+			     (if (aref print-number-table i)
+				 (setq non-nil t)))
+			   (not non-nil)))
+		    ;; Output the byte code and constants specially
+		    ;; for lazy dynamic loading.
 		    (let ((position
 			   (byte-compile-output-as-comment
 			    (cons (car form) (nth 1 form))