chiark
/
gitweb
/
~mdw
/
mLib
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0ae5e7b
)
Fix bugs.
author
mdw
<mdw>
Sun, 21 Jan 2001 19:04:59 +0000
(19:04 +0000)
committer
mdw
<mdw>
Sun, 21 Jan 2001 19:04:59 +0000
(19:04 +0000)
assoc.c
patch
|
blob
|
blame
|
history
diff --git
a/assoc.c
b/assoc.c
index 26fe2c941a8af6c67baf2c0a56d5e549052d9bc9..6779bc89876d1a8c7f508efc1e69744171a8c5c9 100644
(file)
--- a/
assoc.c
+++ b/
assoc.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: assoc.c,v 1.
1 2001/01/20 11:50:58
mdw Exp $
+ * $Id: assoc.c,v 1.
2 2001/01/21 19:04:59
mdw Exp $
*
* Assocation tables
*
*
* Assocation tables
*
@@
-30,6
+30,9
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: assoc.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: assoc.c,v $
+ * Revision 1.2 2001/01/21 19:04:59 mdw
+ * Fix bugs.
+ *
* Revision 1.1 2001/01/20 11:50:58 mdw
* Hash tables indexed by atoms, to avoid expense of hashing keys on each
* lookup, and to reduce storage used by key texts.
* Revision 1.1 2001/01/20 11:50:58 mdw
* Hash tables indexed by atoms, to avoid expense of hashing keys on each
* lookup, and to reduce storage used by key texts.
@@
-77,6
+80,8
@@
void assoc_destroy(assoc_table *t)
for (;;) {
hash_base *p;
HASH_NEXT(&i, p);
for (;;) {
hash_base *p;
HASH_NEXT(&i, p);
+ if (!p)
+ break;
x_free(t->t.a, p);
}
hash_destroy(&t->t);
x_free(t->t.a, p);
}
hash_destroy(&t->t);
@@
-127,6
+132,7
@@
void *assoc_find(assoc_table *t, atom *a, size_t sz, unsigned *f)
/* --- Make a new assoication --- */
q = x_alloc(t->t.a, sz);
/* --- Make a new assoication --- */
q = x_alloc(t->t.a, sz);
+ q->a = a;
q->b.next = *bin;
q->b.hash = ATOM_HASH(a);
*bin = &q->b;
q->b.next = *bin;
q->b.hash = ATOM_HASH(a);
*bin = &q->b;