diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-05-30 14:34:24 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-05-30 14:34:24 +0300 |
commit | 156f33c8aa5b5c113987c353bbd32c70f02f6a9d (patch) | |
tree | cca8dde609d34b202c1b7d0a5148cfa38b129ba9 /src/gdbmdefs.h | |
parent | 60605e947884726fe14c8896fa5c766f6e99742a (diff) | |
download | gdbm-156f33c8aa5b5c113987c353bbd32c70f02f6a9d.tar.gz gdbm-156f33c8aa5b5c113987c353bbd32c70f02f6a9d.tar.bz2 |
Avoid unnecessary memory reallocations during caching
* src/findkey.c (_gdbm_read_entry): Reallocate cache_entry->ca_data.dptr only
if necessary.
* src/gdbmdefs.h (data_cache_elem): New member: dsize
* src/gdbmdelete.c: Don't free cache_entry->ca_data.dptr
* src/gdbmopen.c (_gdbm_init_cache): Initialize ca_data.dsize
Diffstat (limited to 'src/gdbmdefs.h')
-rw-r--r-- | src/gdbmdefs.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/gdbmdefs.h b/src/gdbmdefs.h index 4ae646f..af6f09c 100644 --- a/src/gdbmdefs.h +++ b/src/gdbmdefs.h @@ -149,11 +149,12 @@ typedef struct typedef struct { - int hash_val; - int data_size; - int key_size; - char *dptr; - int elem_loc; + int hash_val; + int data_size; + int key_size; + char *dptr; + size_t dsize; + int elem_loc; } data_cache_elem; typedef struct |