From 2b25de040f7df72224b0261119ac2790233562f9 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 18 Sep 2002 16:02:49 +0000 Subject: [PATCH] (byte-compile-output-docform): Don't make the definition dynamic if it shares structure with the arg list. --- lisp/emacs-lisp/bytecomp.el | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index a96b1b64c28..fd69d1bd154 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -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 @@ list that represents a doc string reference. (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)) -- 2.39.2