From 17870c01f609101bc059ff0c38043d3734a35e72 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 22 Dec 2010 19:00:12 -0500 Subject: [PATCH] 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. --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/bytecomp.el | 6 +++--- src/ChangeLog | 3 +++ src/print.c | 8 +------- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 48cd0058521..f3449278d68 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-12-22 Stefan Monnier + + * emacs-lisp/bytecomp.el (byte-compile-output-docform): Fix up use of + print-number-table. + 2010-12-21 Chong Yidong * help-fns.el (find-lisp-object-file-name): Locate .emacs from diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index f04aad994f3..28fb1f80d69 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2058,9 +2058,9 @@ list that represents a doc string reference. ;; 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. diff --git a/src/ChangeLog b/src/ChangeLog index 2c3f8f92f83..820c4469317 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2010-12-22 Stefan Monnier + * 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. diff --git a/src/print.c b/src/print.c index 50a972cc94a..07faa46dfa6 100644 --- a/src/print.c +++ b/src/print.c @@ -156,12 +156,6 @@ Lisp_Object Vprint_continuous_numbering; 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 @@ print_preprocess (Lisp_Object obj) && 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. */ -- 2.39.5