changeset 106330:e72085f5ccf5

(print_preprocess): Preprocess the key_and_value table of hashtables, even tho they're "hidden" (bug#5082).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 30 Nov 2009 21:08:25 +0000
parents 1328c6aa3dec
children 1c9648ddfd5e
files src/ChangeLog src/print.c
diffstat 2 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Mon Nov 30 20:27:44 2009 +0000
+++ b/src/ChangeLog	Mon Nov 30 21:08:25 2009 +0000
@@ -1,3 +1,8 @@
+2009-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* print.c (print_preprocess): Preprocess the key_and_value table of
+	hashtables, even tho they're "hidden" (bug#5082).
+
 2009-11-29  Jan Djärv  <jan.h.d@swipnet.se>
 
 	* frame.c (frame_make_pointer_invisible)
@@ -16,7 +21,7 @@
 	* xterm.c (x_delete_terminal): Set dpyinfo->display to NULL.
 
 	* frame.c (frame_make_pointer_invisible)
-	(frame_make_pointer_visible): Just return if there isn't any selected 
+	(frame_make_pointer_visible): Just return if there isn't any selected
 	frame.
 
 	* search.c (simple_search): Remove warning by making *p const.
--- a/src/print.c	Mon Nov 30 20:27:44 2009 +0000
+++ b/src/print.c	Mon Nov 30 21:08:25 2009 +0000
@@ -1416,6 +1416,13 @@
 	    size &= PSEUDOVECTOR_SIZE_MASK;
 	  for (i = 0; i < size; i++)
 	    print_preprocess (XVECTOR (obj)->contents[i]);
+	  if (HASH_TABLE_P (obj))
+	    { /* For hash tables, the key_and_value slot is past
+	        `size' because it needs to be marked specially in case
+	        the table is weak.  */
+	      struct Lisp_Hash_Table *h = XHASH_TABLE (obj);
+	      print_preprocess (h->key_and_value);
+	    }
 	  break;
 
 	default: