]> git.saurik.com Git - redis.git/commitdiff
sds.c: sdsAllocSize() function added.
authorantirez <antirez@gmail.com>
Wed, 14 Mar 2012 13:58:26 +0000 (14:58 +0100)
committerantirez <antirez@gmail.com>
Wed, 14 Mar 2012 14:36:24 +0000 (15:36 +0100)
src/sds.c
src/sds.h

index 82d12e232a4f774477046be8e909ae439cafda4b..bc6aa6b2f25cc8988b405782a3e25d50e08ea704 100644 (file)
--- a/src/sds.c
+++ b/src/sds.c
@@ -123,6 +123,12 @@ sds sdsRemoveFreeSpace(sds s) {
     return sh->buf;
 }
 
+size_t sdsAllocSize(sds s) {
+    struct sdshdr *sh = (void*) (s-(sizeof(struct sdshdr)));
+
+    return sizeof(*sh)+sh->len+sh->free+1;
+}
+
 /* Increment the sds length and decrements the left free space at the
  * end of the string accordingly to 'incr'. Also set the null term
  * in the new end of the string.
index b00551b417d1c7317819c0fc292789d4afa4711d..0648381bb9a74a72382a5dc5dd67b9c15badf7d3 100644 (file)
--- a/src/sds.h
+++ b/src/sds.h
@@ -94,5 +94,7 @@ sds sdsmapchars(sds s, char *from, char *to, size_t setlen);
 /* Low level functions exposed to the user API */
 sds sdsMakeRoomFor(sds s, size_t addlen);
 void sdsIncrLen(sds s, int incr);
+sds sdsRemoveFreeSpace(sds s);
+size_t sdsAllocSize(sds s);
 
 #endif