X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Felhash.h;h=7c4fe9c04f970dd3d562fe5dc5bfdfa394133aa1;hb=c17cfefd00f49430bd139e11bfc580734091d728;hp=e780626a16e3f434c5f39184545f13b48387da4b;hpb=ea1ea793fe6e244ef5555ed983423a204101af13;p=chise%2Fxemacs-chise.git.1 diff --git a/src/elhash.h b/src/elhash.h index e780626..7c4fe9c 100644 --- a/src/elhash.h +++ b/src/elhash.h @@ -20,12 +20,14 @@ Boston, MA 02111-1307, USA. */ /* 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 CHECK_HASH_TABLE(x) CHECK_RECORD (x, hash_table) @@ -36,8 +38,10 @@ enum hash_table_weakness 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_KEY_CAR_VALUE_WEAK, HASH_TABLE_WEAK }; @@ -63,9 +67,14 @@ typedef unsigned long (*hash_table_hash_function_t) (Lisp_Object obj); typedef int (*maphash_function_t) (Lisp_Object key, Lisp_Object value, void* extra_arg); -struct Lisp_Hash_Table; +Lisp_Object make_standard_lisp_hash_table (enum hash_table_test test, + size_t size, + double rehash_size, + double rehash_threshold, + enum hash_table_weakness weakness); -Lisp_Object make_general_lisp_hash_table (enum hash_table_test test, +Lisp_Object make_general_lisp_hash_table (hash_table_hash_function_t hash_function, + hash_table_test_function_t test_function, size_t size, double rehash_size, double rehash_threshold, @@ -84,6 +93,6 @@ void elisp_map_remhash (maphash_function_t predicate, int finish_marking_weak_hash_tables (void); void prune_weak_hash_tables (void); -void reorganize_hash_table (struct Lisp_Hash_Table *ht); +void pdump_reorganize_hash_table (Lisp_Object); -#endif /* _XEMACS_ELHASH_H_ */ +#endif /* INCLUDED_elhash_h_ */