| 
					
				 | 
			
			
				@@ -26,14 +26,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define HT_INITIALIZER()                        \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { NULL, 0, 0, 0, -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#define HT_INIT(root) do {                      \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (root)->hth_table_length = 0;               \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (root)->hth_table = NULL;                   \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (root)->hth_n_entries = 0;                  \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (root)->hth_load_limit = 0;                 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (root)->hth_prime_idx = -1;                 \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } while (0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define HT_ENTRY(type)                          \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   struct {                                      \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     struct type *hte_next;                      \ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -59,7 +51,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define HT_NEXT(name, head, elm)     name##_HT_NEXT((head), (elm)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define HT_NEXT_RMV(name, head, elm) name##_HT_NEXT_RMV((head), (elm)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define HT_CLEAR(name, head)         name##_HT_CLEAR(head) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#define HT_INIT(name, head)          name##_HT_INIT(head) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* Helper: */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static INLINE unsigned 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ht_improve_hash(unsigned h) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -100,6 +92,14 @@ ht_string_hash(const char *s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   int name##_HT_GROW(struct name *ht, unsigned min_capacity);           \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   void name##_HT_CLEAR(struct name *ht);                                \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   int _##name##_HT_REP_IS_BAD(struct name *ht);                         \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  static INLINE void                                                    \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name##_HT_INIT(struct name *head) {                                   \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    head->hth_table_length = 0;                                         \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    head->hth_table = NULL;                                             \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    head->hth_n_entries = 0;                                            \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    head->hth_load_limit = 0;                                           \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    head->hth_prime_idx = -1;                                           \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }                                                                     \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* Helper: returns a pointer to the right location in the table       \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * 'head' to find or insert the element 'elm'. */                     \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   static INLINE struct type **                                          \ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -344,7 +344,7 @@ ht_string_hash(const char *s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (head->hth_table)                                                \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       freefn(head->hth_table);                                          \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     head->hth_table_length = 0;                                         \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    HT_INIT(head);                                                      \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name##_HT_INIT(head);                                               \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }                                                                     \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* Debugging helper: return false iff the representation of 'head' is \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * internally consistent. */                                          \ 
			 |