X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fq.c;h=221ea5af9e7dc2218ebb8a6d13523ab5c8e37033;hb=54404e00634570d9d7e37f45969c1c9317a2e82e;hp=0d0d944529a40e7681b9ab895d99c39b26be1e23;hpb=35bef20c4bea1a43ea4072f0ea7ff5bbc68412ee;p=swftools.git diff --git a/lib/q.c b/lib/q.c index 0d0d944..221ea5a 100644 --- a/lib/q.c +++ b/lib/q.c @@ -625,14 +625,16 @@ dict_t*dict_clone(dict_t*o) memcpy(h, o, sizeof(dict_t)); h->slots = h->hashsize?(dictentry_t**)rfx_calloc(sizeof(dictentry_t*)*h->hashsize):0; int t; - for(t=0;thashsize;t++) { - dictentry_t*e = h->slots[t]; + for(t=0;thashsize;t++) { + dictentry_t*e = o->slots[t]; while(e) { dictentry_t*n = (dictentry_t*)rfx_alloc(sizeof(dictentry_t)); memcpy(n, e, sizeof(dictentry_t)); - n->data = h->key_type->dup(e->data); + n->key = h->key_type->dup(e->key); + n->data = e->data; n->next = h->slots[t]; h->slots[t] = n; + e = e->next; } } return h; @@ -684,7 +686,7 @@ void dict_dump(dict_t*h, FILE*fi, const char*prefix) for(t=0;thashsize;t++) { dictentry_t*e = h->slots[t]; while(e) { - if(h->key_type==&charptr_type) { + if(h->key_type!=&charptr_type) { fprintf(fi, "%s%08x=%08x\n", prefix, e->key, e->data); } else { fprintf(fi, "%s%s=%08x\n", prefix, e->key, e->data);