Mercurial > hg > xemacs-beta
comparison src/rangetab.c @ 2515:de9952d2ed18
[xemacs-hg @ 2005-01-26 10:22:19 by ben]
Hash table cleanups, part 1 of 2
emacs-marshals.c, hash.c, hash.h, ui-gtk.c: Clean up and generalize creation of string hash tables.
ui-gtk.c, elhash.h, gccache-gtk.c, glyphs-gtk.c, lrecord.h, marker.c, objects-gtk.c, objects-msw.c, objects-tty.c, objects-x.c, objects.c, opaque.c, rangetab.c, specifier.c, specifier.h, xgccache.c: Use Hashcode rather than unsigned long.
author | ben |
---|---|
date | Wed, 26 Jan 2005 10:22:29 +0000 |
parents | 3d8143fc88e1 |
children | 9f70af3ac939 |
comparison
equal
deleted
inserted
replaced
2514:b49d38bc659d | 2515:de9952d2ed18 |
---|---|
157 } | 157 } |
158 | 158 |
159 return 1; | 159 return 1; |
160 } | 160 } |
161 | 161 |
162 static unsigned long | 162 static Hashcode |
163 range_table_entry_hash (struct range_table_entry *rte, int depth) | 163 range_table_entry_hash (struct range_table_entry *rte, int depth) |
164 { | 164 { |
165 return HASH3 (rte->first, rte->last, internal_hash (rte->val, depth + 1)); | 165 return HASH3 (rte->first, rte->last, internal_hash (rte->val, depth + 1)); |
166 } | 166 } |
167 | 167 |
168 static unsigned long | 168 static Hashcode |
169 range_table_hash (Lisp_Object obj, int depth) | 169 range_table_hash (Lisp_Object obj, int depth) |
170 { | 170 { |
171 Lisp_Range_Table *rt = XRANGE_TABLE (obj); | 171 Lisp_Range_Table *rt = XRANGE_TABLE (obj); |
172 int i; | 172 int i; |
173 int size = Dynarr_length (rt->entries); | 173 int size = Dynarr_length (rt->entries); |
174 unsigned long hash = size; | 174 Hashcode hash = size; |
175 | 175 |
176 /* approach based on internal_array_hash(). */ | 176 /* approach based on internal_array_hash(). */ |
177 if (size <= 5) | 177 if (size <= 5) |
178 { | 178 { |
179 for (i = 0; i < size; i++) | 179 for (i = 0; i < size; i++) |