Mercurial > hg > xemacs-beta
diff src/elhash.h @ 398:74fd4e045ea6 r21-2-29
Import from CVS: tag r21-2-29
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:13:30 +0200 |
parents | 8626e4521993 |
children | de805c49cfc1 |
line wrap: on
line diff
--- a/src/elhash.h Mon Aug 13 11:12:06 2007 +0200 +++ b/src/elhash.h Mon Aug 13 11:13:30 2007 +0200 @@ -20,19 +20,20 @@ /* Synched up with: Not in FSF. */ -#ifndef _XEMACS_ELHASH_H_ -#define _XEMACS_ELHASH_H_ +#ifndef INCLUDED_elhash_h_ +#define INCLUDED_elhash_h_ -DECLARE_LRECORD (hash_table, struct Lisp_Hash_Table); +typedef struct Lisp_Hash_Table Lisp_Hash_Table; -#define XHASH_TABLE(x) XRECORD (x, 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 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_type +enum hash_table_weakness { HASH_TABLE_NON_WEAK, HASH_TABLE_KEY_WEAK, @@ -49,6 +50,8 @@ HASH_TABLE_EQUAL }; +extern const struct lrecord_description hash_table_description[]; + EXFUN (Fcopy_hash_table, 1); EXFUN (Fhash_table_count, 1); EXFUN (Fgethash, 3); @@ -62,15 +65,14 @@ typedef int (*maphash_function_t) (Lisp_Object key, Lisp_Object value, void* extra_arg); - -Lisp_Object make_general_lisp_hash_table (size_t size, - enum hash_table_type type, - enum hash_table_test test, +Lisp_Object make_general_lisp_hash_table (enum hash_table_test test, + size_t size, + double rehash_size, double rehash_threshold, - double rehash_size); + enum hash_table_weakness weakness); Lisp_Object make_lisp_hash_table (size_t size, - enum hash_table_type type, + enum hash_table_weakness weakness, enum hash_table_test test); void elisp_maphash (maphash_function_t function, @@ -79,8 +81,9 @@ void elisp_map_remhash (maphash_function_t predicate, Lisp_Object hash_table, void *extra_arg); -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)); +int finish_marking_weak_hash_tables (void); +void prune_weak_hash_tables (void); -#endif /* _XEMACS_ELHASH_H_ */ +void pdump_reorganize_hash_table (Lisp_Object); + +#endif /* INCLUDED_elhash_h_ */