Changeset 5645:5d0d591fd4e6 in roaraudio
- Timestamp:
- 09/11/12 21:15:21 (12 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/kstore.c
r5644 r5645 39 39 40 40 struct binkv { 41 c onst char * key;41 char * key; 42 42 void * value; 43 43 }; … … 116 116 if ( store->unref(store->kv[i].value) == -1 ) 117 117 return -1; 118 roar_mm_free(store->kv[i].key); 118 119 store->kv[i].key = NULL; 119 120 store->kv[i].value = NULL; … … 129 130 int roar_kstore_add(struct roar_kstore * store, void * obj, const char * key) { 130 131 size_t i; 132 int err; 131 133 132 134 if ( store == NULL ) { … … 155 157 if ( store->kv[i].key != NULL ) 156 158 continue; 157 if ( store->ref != NULL ) 158 if ( store->ref(obj) == -1 ) 159 160 store->kv[i].key = roar_mm_strdup(key); 161 162 if ( store->kv[i].key == NULL ) 163 return -1; 164 165 store->kv[i].value = obj; 166 167 if ( store->ref != NULL ) { 168 if ( store->ref(obj) == -1 ) { 169 err = roar_error; 170 roar_mm_free(store->kv[i].key); 171 store->kv[i].key = NULL; 172 roar_error = err; 159 173 return -1; 160 store->kv[i].key = key;161 store->kv[i].value = obj;174 } 175 } 162 176 return 0; 163 177 } … … 201 215 if ( store->unref(store->kv[i].value) == -1 ) 202 216 return -1; 217 roar_mm_free(store->kv[i].key); 203 218 store->kv[i].key = NULL; 204 219 store->kv[i].value = NULL; … … 219 234 } 220 235 221 for (i = 0; i < store->len; i++) 236 for (i = 0; i < store->len; i++) { 237 ROAR_DBG("roar_kstore_name(store=%p, obj=%p): store->kv[%i].key=%p'%s', store->kv[%i].value=%p", store, obj, (int)i, store->kv[i].key, store->kv[i].key, (int)i, store->kv[i].value); 222 238 if ( store->kv[i].key != NULL && store->kv[i].value == obj ) 223 239 return store->kv[i].key; 240 } 224 241 225 242 roar_err_set(ROAR_ERROR_NOENT);
Note: See TracChangeset
for help on using the changeset viewer.