- Timestamp:
- Mar 7, 2010, 10:26:09 PM (15 years ago)
- Branches:
- master, release-1.10, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- bf7aa1d
- Parents:
- 0e57335
- git-author:
- Anders Kaseorg <andersk@mit.edu> (02/27/10 22:21:53)
- git-committer:
- Anders Kaseorg <andersk@mit.edu> (03/07/10 22:26:09)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
dict.c
r0f15f12 ra1074de 71 71 } 72 72 73 void owl_dict_noop_free(void *x) { 73 void owl_dict_noop_delete(void *x) 74 { 74 75 return; 75 76 } … … 77 78 /* Returns 0 on success. Will copy the key but make 78 79 a reference to the value. Will clobber an existing 79 entry with the same key iff free_on_replace!=NULL,80 and will run free_on_replace on the old element.80 entry with the same key iff delete_on_replace!=NULL, 81 and will run delete_on_replace on the old element. 81 82 Will return -2 if replace=NULL and match was found. 82 83 */ 83 int owl_dict_insert_element(owl_dict *d, const char *k, void *v, void (*free_on_replace)(void *old)) { 84 int owl_dict_insert_element(owl_dict *d, const char *k, void *v, void (*delete_on_replace)(void *old)) 85 { 84 86 int pos, found; 85 87 char *dupk; 86 88 found = _owl_dict_find_pos(d, k, &pos); 87 if (found && free_on_replace) {88 free_on_replace(d->els[pos].v);89 if (found && delete_on_replace) { 90 delete_on_replace(d->els[pos].v); 89 91 d->els[pos].v = v; 90 92 return(0); 91 } else if (found && ! free_on_replace) {93 } else if (found && !delete_on_replace) { 92 94 return(-2); 93 95 } else {
Note: See TracChangeset
for help on using the changeset viewer.