changeset 112013:f11676feb984

Fix up last change. * lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Fix up use of print-number-table. * src/print.c (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): Remove. (print_preprocess): Fix handling of uninterned symbols in last change.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 22 Dec 2010 19:00:12 -0500
parents 75a194479697
children df9847719afa
files lisp/ChangeLog lisp/emacs-lisp/bytecomp.el src/ChangeLog src/print.c
diffstat 4 files changed, 12 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Dec 22 16:25:46 2010 -0500
+++ b/lisp/ChangeLog	Wed Dec 22 19:00:12 2010 -0500
@@ -1,3 +1,8 @@
+2010-12-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/bytecomp.el (byte-compile-output-docform): Fix up use of
+	print-number-table.
+
 2010-12-21  Chong Yidong  <cyd@stupidchicken.com>
 
 	* help-fns.el (find-lisp-object-file-name): Locate .emacs from
--- a/lisp/emacs-lisp/bytecomp.el	Wed Dec 22 16:25:46 2010 -0500
+++ b/lisp/emacs-lisp/bytecomp.el	Wed Dec 22 19:00:12 2010 -0500
@@ -2058,9 +2058,9 @@
                         ;; 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)))
+                          (when (hash-table-p print-number-table)
+                            (maphash (lambda (k v) (if v (setq non-nil t)))
+                                     print-number-table))
                           (not non-nil)))
                    ;; Output the byte code and constants specially
                    ;; for lazy dynamic loading.
--- a/src/ChangeLog	Wed Dec 22 16:25:46 2010 -0500
+++ b/src/ChangeLog	Wed Dec 22 19:00:12 2010 -0500
@@ -1,5 +1,8 @@
 2010-12-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* print.c (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): Remove.
+	(print_preprocess): Fix handling of uninterned symbols in last change.
+
 	* print.c (print, print_preprocess, print_object): Use a hash table
 	rather than a linear table for Vprint_number_table.
 
--- a/src/print.c	Wed Dec 22 16:25:46 2010 -0500
+++ b/src/print.c	Wed Dec 22 19:00:12 2010 -0500
@@ -156,12 +156,6 @@
 int print_number_index;
 Lisp_Object Vprint_number_table;
 
-/* PRINT_NUMBER_OBJECT returns the I'th object in Vprint_number_table TABLE.
-   PRINT_NUMBER_STATUS returns the status of the I'th object in TABLE.
-   See the comment of the variable Vprint_number_table.  */
-#define PRINT_NUMBER_OBJECT(table,i) XVECTOR ((table))->contents[(i) * 2]
-#define PRINT_NUMBER_STATUS(table,i) XVECTOR ((table))->contents[(i) * 2 + 1]
-
 void print_interval (INTERVAL interval, Lisp_Object printcharfun);
 
 /* GDB resets this to zero on W32 to disable OutputDebugString calls.  */
@@ -1314,7 +1308,7 @@
 		  && SYMBOLP (obj)
 		  && !SYMBOL_INTERNED_P (obj)))
 	    { /* OBJ appears more than once.	Let's remember that.  */
-	      if (EQ (Qt, num))
+	      if (!INTEGERP (num))
 		{
 		  print_number_index++;
 		  /* Negative number indicates it hasn't been printed yet.  */