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.
This commit is contained in:
Stefan Monnier 2010-12-22 19:00:12 -05:00
parent a65b85b5f0
commit 17870c01f6
4 changed files with 12 additions and 10 deletions

View file

@ -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

View file

@ -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.

View file

@ -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.

View file

@ -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. */