Loading lib/hash.c +7 −19 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ hash_element_dtor(void *user, void *element) struct curl_hash *h = (struct curl_hash *) user; struct curl_hash_element *e = (struct curl_hash_element *) element; Curl_safefree(e->key); if(e->ptr) { h->dtor(e->ptr); e->ptr = NULL; Loading Loading @@ -87,24 +85,15 @@ Curl_hash_init(struct curl_hash *h, static struct curl_hash_element * mk_hash_element(const void *key, size_t key_len, const void *p) { struct curl_hash_element *he = malloc(sizeof(struct curl_hash_element)); /* allocate the struct plus memory after it to store the key */ struct curl_hash_element *he = malloc(sizeof(struct curl_hash_element) + key_len); if(he) { void *dupkey = malloc(key_len); if(dupkey) { /* copy the key */ memcpy(dupkey, key, key_len); he->key = dupkey; memcpy(he->key, key, key_len); he->key_len = key_len; he->ptr = (void *) p; } else { /* failed to duplicate the key, free memory and fail */ free(he); he = NULL; } } return he; } Loading Loading @@ -145,7 +134,6 @@ Curl_hash_add(struct curl_hash *h, void *key, size_t key_len, void *p) * "destructor" for the actual data 'p'. When we fail, we shall not touch * that data. */ free(he->key); free(he); } Loading lib/hash.h +1 −1 Original line number Diff line number Diff line Loading @@ -58,8 +58,8 @@ struct curl_hash { struct curl_hash_element { void *ptr; char *key; size_t key_len; char key[1]; /* allocated memory following the struct */ }; struct curl_hash_iterator { Loading Loading
lib/hash.c +7 −19 Original line number Diff line number Diff line Loading @@ -37,8 +37,6 @@ hash_element_dtor(void *user, void *element) struct curl_hash *h = (struct curl_hash *) user; struct curl_hash_element *e = (struct curl_hash_element *) element; Curl_safefree(e->key); if(e->ptr) { h->dtor(e->ptr); e->ptr = NULL; Loading Loading @@ -87,24 +85,15 @@ Curl_hash_init(struct curl_hash *h, static struct curl_hash_element * mk_hash_element(const void *key, size_t key_len, const void *p) { struct curl_hash_element *he = malloc(sizeof(struct curl_hash_element)); /* allocate the struct plus memory after it to store the key */ struct curl_hash_element *he = malloc(sizeof(struct curl_hash_element) + key_len); if(he) { void *dupkey = malloc(key_len); if(dupkey) { /* copy the key */ memcpy(dupkey, key, key_len); he->key = dupkey; memcpy(he->key, key, key_len); he->key_len = key_len; he->ptr = (void *) p; } else { /* failed to duplicate the key, free memory and fail */ free(he); he = NULL; } } return he; } Loading Loading @@ -145,7 +134,6 @@ Curl_hash_add(struct curl_hash *h, void *key, size_t key_len, void *p) * "destructor" for the actual data 'p'. When we fail, we shall not touch * that data. */ free(he->key); free(he); } Loading
lib/hash.h +1 −1 Original line number Diff line number Diff line Loading @@ -58,8 +58,8 @@ struct curl_hash { struct curl_hash_element { void *ptr; char *key; size_t key_len; char key[1]; /* allocated memory following the struct */ }; struct curl_hash_iterator { Loading