diff src/print.c @ 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 f2cea199b0c4
children 1d1d5d9bd884
line wrap: on
line diff
--- 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: