diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-10 14:22:28 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-10 14:22:28 +0300 |
commit | 3e5d6e9683d5d3efa3a82556d0f73892d674ed71 (patch) | |
tree | 0baa7d3cecce3b984e85eef238887d501b780744 /src | |
parent | 8bd6f1e59b1663089bf8c81d8d2b14e20010c6e4 (diff) | |
download | grecs-3e5d6e9683d5d3efa3a82556d0f73892d674ed71.tar.gz grecs-3e5d6e9683d5d3efa3a82556d0f73892d674ed71.tar.bz2 |
Bugfixes.
* Makefile.am (gitid.h): Fix sed expression.
* src/grecs.h (grecs_hash_string): New proto.
* src/symtab.c (grecs_hash_string): New function.
Diffstat (limited to 'src')
-rw-r--r-- | src/grecs.h | 3 | ||||
-rw-r--r-- | src/symtab.c | 13 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/grecs.h b/src/grecs.h index decde1d..40ade87 100644 --- a/src/grecs.h +++ b/src/grecs.h | |||
@@ -318,6 +318,9 @@ int grecs_symtab_enumerate(struct grecs_symtab *st, | |||
318 | grecs_symtab_enumerator_t fun, void *data); | 318 | grecs_symtab_enumerator_t fun, void *data); |
319 | 319 | ||
320 | size_t grecs_symtab_count_entries(struct grecs_symtab *st); | 320 | size_t grecs_symtab_count_entries(struct grecs_symtab *st); |
321 | |||
322 | unsigned grecs_hash_string(const char *name, unsigned long hashsize); | ||
323 | |||
321 | 324 | ||
322 | void grecs_value_free(struct grecs_value *val); | 325 | void grecs_value_free(struct grecs_value *val); |
323 | void grecs_node_free(struct grecs_node *node); | 326 | void grecs_node_free(struct grecs_node *node); |
diff --git a/src/symtab.c b/src/symtab.c index ac1581b..297787c 100644 --- a/src/symtab.c +++ b/src/symtab.c | |||
@@ -73,11 +73,9 @@ syment_alloc(struct grecs_symtab *st, void *key) | |||
73 | } | 73 | } |
74 | 74 | ||
75 | 75 | ||
76 | static unsigned | 76 | unsigned |
77 | def_hash(void *data, unsigned long hashsize) | 77 | grecs_hash_string(const char *name, unsigned long hashsize) |
78 | { | 78 | { |
79 | struct grecs_syment *sym = data; | ||
80 | const char *name = sym->name; | ||
81 | unsigned i; | 79 | unsigned i; |
82 | 80 | ||
83 | for (i = 0; *name; name++) { | 81 | for (i = 0; *name; name++) { |
@@ -87,6 +85,13 @@ def_hash(void *data, unsigned long hashsize) | |||
87 | return i % hashsize; | 85 | return i % hashsize; |
88 | } | 86 | } |
89 | 87 | ||
88 | static unsigned | ||
89 | def_hash(void *data, unsigned long hashsize) | ||
90 | { | ||
91 | struct grecs_syment *sym = data; | ||
92 | return grecs_hash_string(sym->name, hashsize); | ||
93 | } | ||
94 | |||
90 | static int | 95 | static int |
91 | def_cmp(const void *a, const void *b) | 96 | def_cmp(const void *a, const void *b) |
92 | { | 97 | { |