aboutsummaryrefslogtreecommitdiff
path: root/src/gdbmdefs.h
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2018-05-30 14:34:24 +0300
committerSergey Poznyakoff <gray@gnu.org>2018-05-30 14:34:24 +0300
commit156f33c8aa5b5c113987c353bbd32c70f02f6a9d (patch)
treecca8dde609d34b202c1b7d0a5148cfa38b129ba9 /src/gdbmdefs.h
parent60605e947884726fe14c8896fa5c766f6e99742a (diff)
downloadgdbm-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.h11
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

Return to:

Send suggestions and report system problems to the System administrator.