diff src/elhash.h @ 412:697ef44129c6 r21-2-14

Import from CVS: tag r21-2-14
author cvs
date Mon, 13 Aug 2007 11:20:41 +0200
parents de805c49cfc1
children 11054d720c21
line wrap: on
line diff
--- a/src/elhash.h	Mon Aug 13 11:19:22 2007 +0200
+++ b/src/elhash.h	Mon Aug 13 11:20:41 2007 +0200
@@ -20,25 +20,23 @@
 
 /* Synched up with: Not in FSF. */
 
-#ifndef INCLUDED_elhash_h_
-#define INCLUDED_elhash_h_
+#ifndef _XEMACS_ELHASH_H_
+#define _XEMACS_ELHASH_H_
 
-typedef struct Lisp_Hash_Table Lisp_Hash_Table;
+DECLARE_LRECORD (hash_table, struct Lisp_Hash_Table);
 
-DECLARE_LRECORD (hash_table, Lisp_Hash_Table);
-
-#define XHASH_TABLE(x) XRECORD (x, hash_table, Lisp_Hash_Table)
+#define XHASH_TABLE(x) XRECORD (x, hash_table, struct Lisp_Hash_Table)
 #define XSETHASH_TABLE(x, p) XSETRECORD (x, p, hash_table)
 #define HASH_TABLEP(x) RECORDP (x, hash_table)
+#define GC_HASH_TABLEP(x) GC_RECORDP (x, hash_table)
 #define CHECK_HASH_TABLE(x) CHECK_RECORD (x, hash_table)
 #define CONCHECK_HASH_TABLE(x) CONCHECK_RECORD (x, hash_table)
 
-enum hash_table_weakness
+enum hash_table_type
 {
   HASH_TABLE_NON_WEAK,
   HASH_TABLE_KEY_WEAK,
   HASH_TABLE_VALUE_WEAK,
-  HASH_TABLE_KEY_VALUE_WEAK,
   HASH_TABLE_KEY_CAR_WEAK,
   HASH_TABLE_VALUE_CAR_WEAK,
   HASH_TABLE_WEAK
@@ -51,8 +49,6 @@
   HASH_TABLE_EQUAL
 };
 
-extern const struct lrecord_description hash_table_description[];
-
 EXFUN (Fcopy_hash_table, 1);
 EXFUN (Fhash_table_count, 1);
 EXFUN (Fgethash, 3);
@@ -66,14 +62,15 @@
 typedef int (*maphash_function_t) (Lisp_Object key, Lisp_Object value,
 				   void* extra_arg);
 
-Lisp_Object make_general_lisp_hash_table (enum hash_table_test test,
-					  size_t size,
-					  double rehash_size,
+
+Lisp_Object make_general_lisp_hash_table (size_t size,
+					  enum hash_table_type type,
+					  enum hash_table_test test,
 					  double rehash_threshold,
-					  enum hash_table_weakness weakness);
+					  double rehash_size);
 
 Lisp_Object make_lisp_hash_table (size_t size,
-				  enum hash_table_weakness weakness,
+				  enum hash_table_type type,
 				  enum hash_table_test test);
 
 void elisp_maphash (maphash_function_t function,
@@ -82,9 +79,8 @@
 void elisp_map_remhash (maphash_function_t predicate,
 			Lisp_Object hash_table, void *extra_arg);
 
-int finish_marking_weak_hash_tables (void);
-void prune_weak_hash_tables (void);
+int finish_marking_weak_hash_tables (int (*obj_marked_p) (Lisp_Object),
+				     void (*markobj) (Lisp_Object));
+void prune_weak_hash_tables (int (*obj_marked_p) (Lisp_Object));
 
-void pdump_reorganize_hash_table (Lisp_Object);
-
-#endif /* INCLUDED_elhash_h_ */
+#endif /* _XEMACS_ELHASH_H_ */