• Home
  • Raw
  • Download

Lines Matching refs:d

119     dictionary  *   d ;  in dictionary_new()  local
124 if (!(d = (dictionary *)calloc(1, sizeof(dictionary)))) { in dictionary_new()
127 d->size = size ; in dictionary_new()
128 d->val = (char **)calloc(size, sizeof(char*)); in dictionary_new()
129 d->key = (char **)calloc(size, sizeof(char*)); in dictionary_new()
130 d->hash = (unsigned int *)calloc(size, sizeof(unsigned)); in dictionary_new()
131 return d ; in dictionary_new()
143 void dictionary_del(dictionary * d) in dictionary_del() argument
147 if (d==NULL) return ; in dictionary_del()
148 for (i=0 ; i<d->size ; i++) { in dictionary_del()
149 if (d->key[i]!=NULL) in dictionary_del()
150 free(d->key[i]); in dictionary_del()
151 if (d->val[i]!=NULL) in dictionary_del()
152 free(d->val[i]); in dictionary_del()
154 free(d->val); in dictionary_del()
155 free(d->key); in dictionary_del()
156 free(d->hash); in dictionary_del()
157 free(d); in dictionary_del()
175 char * dictionary_get(dictionary * d, const char * key, char * def) in dictionary_get() argument
181 for (i=0 ; i<d->size ; i++) { in dictionary_get()
182 if (d->key[i]==NULL) in dictionary_get()
185 if (hash==d->hash[i]) { in dictionary_get()
187 if (!strcmp(key, d->key[i])) { in dictionary_get()
188 return d->val[i] ; in dictionary_get()
221 int dictionary_set(dictionary * d, const char * key, const char * val) in dictionary_set() argument
226 if (d==NULL || key==NULL) return -1 ; in dictionary_set()
231 if (d->n>0) { in dictionary_set()
232 for (i=0 ; i<d->size ; i++) { in dictionary_set()
233 if (d->key[i]==NULL) in dictionary_set()
235 if (hash==d->hash[i]) { /* Same hash value */ in dictionary_set()
236 if (!strcmp(key, d->key[i])) { /* Same key */ in dictionary_set()
238 if (d->val[i]!=NULL) in dictionary_set()
239 free(d->val[i]); in dictionary_set()
240 d->val[i] = val ? xstrdup(val) : NULL ; in dictionary_set()
249 if (d->n==d->size) { in dictionary_set()
252 d->val = (char **)mem_double(d->val, d->size * sizeof(char*)) ; in dictionary_set()
253 d->key = (char **)mem_double(d->key, d->size * sizeof(char*)) ; in dictionary_set()
254 d->hash = (unsigned int *)mem_double(d->hash, d->size * sizeof(unsigned)) ; in dictionary_set()
255 if ((d->val==NULL) || (d->key==NULL) || (d->hash==NULL)) { in dictionary_set()
260 d->size *= 2 ; in dictionary_set()
266 for (i=d->n ; d->key[i] ; ) { in dictionary_set()
267 if(++i == d->size) i = 0; in dictionary_set()
270 d->key[i] = xstrdup(key); in dictionary_set()
271 d->val[i] = val ? xstrdup(val) : NULL ; in dictionary_set()
272 d->hash[i] = hash; in dictionary_set()
273 d->n ++ ; in dictionary_set()
288 void dictionary_unset(dictionary * d, const char * key) in dictionary_unset() argument
298 for (i=0 ; i<d->size ; i++) { in dictionary_unset()
299 if (d->key[i]==NULL) in dictionary_unset()
302 if (hash==d->hash[i]) { in dictionary_unset()
304 if (!strcmp(key, d->key[i])) { in dictionary_unset()
310 if (i>=d->size) in dictionary_unset()
314 free(d->key[i]); in dictionary_unset()
315 d->key[i] = NULL ; in dictionary_unset()
316 if (d->val[i]!=NULL) { in dictionary_unset()
317 free(d->val[i]); in dictionary_unset()
318 d->val[i] = NULL ; in dictionary_unset()
320 d->hash[i] = 0 ; in dictionary_unset()
321 d->n -- ; in dictionary_unset()
337 void dictionary_dump(dictionary * d, FILE * out) in dictionary_dump() argument
341 if (d==NULL || out==NULL) return ; in dictionary_dump()
342 if (d->n<1) { in dictionary_dump()
346 for (i=0 ; i<d->size ; i++) { in dictionary_dump()
347 if (d->key[i]) { in dictionary_dump()
349 d->key[i], in dictionary_dump()
350 d->val[i] ? d->val[i] : "UNDEF"); in dictionary_dump()
362 dictionary * d ; in main() local
369 d = dictionary_new(0); in main()
375 dictionary_set(d, cval, "salut"); in main()
380 val = dictionary_get(d, cval, DICT_INVALID_KEY); in main()
388 dictionary_unset(d, cval); in main()
390 if (d->n != 0) { in main()
394 dictionary_del(d); in main()