summaryrefslogtreecommitdiff
path: root/src/object.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/object.c')
-rw-r--r--src/object.c144
1 files changed, 72 insertions, 72 deletions
diff --git a/src/object.c b/src/object.c
index d8fcf1658..d84f388c2 100644
--- a/src/object.c
+++ b/src/object.c
@@ -39,7 +39,7 @@
robj *createObject(int type, void *ptr) {
robj *o = zmalloc(sizeof(*o));
o->type = type;
- o->encoding = REDIS_ENCODING_RAW;
+ o->encoding = OBJ_ENCODING_RAW;
o->ptr = ptr;
o->refcount = 1;
@@ -48,21 +48,21 @@ robj *createObject(int type, void *ptr) {
return o;
}
-/* Create a string object with encoding REDIS_ENCODING_RAW, that is a plain
+/* Create a string object with encoding OBJ_ENCODING_RAW, that is a plain
* string object where o->ptr points to a proper sds string. */
robj *createRawStringObject(const char *ptr, size_t len) {
- return createObject(REDIS_STRING,sdsnewlen(ptr,len));
+ return createObject(OBJ_STRING,sdsnewlen(ptr,len));
}
-/* Create a string object with encoding REDIS_ENCODING_EMBSTR, that is
+/* Create a string object with encoding OBJ_ENCODING_EMBSTR, that is
* an object where the sds string is actually an unmodifiable string
* allocated in the same chunk as the object itself. */
robj *createEmbeddedStringObject(const char *ptr, size_t len) {
robj *o = zmalloc(sizeof(robj)+sizeof(struct sdshdr8)+len+1);
struct sdshdr8 *sh = (void*)(o+1);
- o->type = REDIS_STRING;
- o->encoding = REDIS_ENCODING_EMBSTR;
+ o->type = OBJ_STRING;
+ o->encoding = OBJ_ENCODING_EMBSTR;
o->ptr = sh+1;
o->refcount = 1;
o->lru = LRU_CLOCK();
@@ -85,9 +85,9 @@ robj *createEmbeddedStringObject(const char *ptr, size_t len) {
*
* The current limit of 39 is chosen so that the biggest string object
* we allocate as EMBSTR will still fit into the 64 byte arena of jemalloc. */
-#define REDIS_ENCODING_EMBSTR_SIZE_LIMIT 44
+#define OBJ_ENCODING_EMBSTR_SIZE_LIMIT 44
robj *createStringObject(const char *ptr, size_t len) {
- if (len <= REDIS_ENCODING_EMBSTR_SIZE_LIMIT)
+ if (len <= OBJ_ENCODING_EMBSTR_SIZE_LIMIT)
return createEmbeddedStringObject(ptr,len);
else
return createRawStringObject(ptr,len);
@@ -100,11 +100,11 @@ robj *createStringObjectFromLongLong(long long value) {
o = shared.integers[value];
} else {
if (value >= LONG_MIN && value <= LONG_MAX) {
- o = createObject(REDIS_STRING, NULL);
- o->encoding = REDIS_ENCODING_INT;
+ o = createObject(OBJ_STRING, NULL);
+ o->encoding = OBJ_ENCODING_INT;
o->ptr = (void*)((long)value);
} else {
- o = createObject(REDIS_STRING,sdsfromlonglong(value));
+ o = createObject(OBJ_STRING,sdsfromlonglong(value));
}
}
return o;
@@ -163,16 +163,16 @@ robj *createStringObjectFromLongDouble(long double value, int humanfriendly) {
robj *dupStringObject(robj *o) {
robj *d;
- redisAssert(o->type == REDIS_STRING);
+ redisAssert(o->type == OBJ_STRING);
switch(o->encoding) {
- case REDIS_ENCODING_RAW:
+ case OBJ_ENCODING_RAW:
return createRawStringObject(o->ptr,sdslen(o->ptr));
- case REDIS_ENCODING_EMBSTR:
+ case OBJ_ENCODING_EMBSTR:
return createEmbeddedStringObject(o->ptr,sdslen(o->ptr));
- case REDIS_ENCODING_INT:
- d = createObject(REDIS_STRING, NULL);
- d->encoding = REDIS_ENCODING_INT;
+ case OBJ_ENCODING_INT:
+ d = createObject(OBJ_STRING, NULL);
+ d->encoding = OBJ_ENCODING_INT;
d->ptr = o->ptr;
return d;
default:
@@ -183,36 +183,36 @@ robj *dupStringObject(robj *o) {
robj *createQuicklistObject(void) {
quicklist *l = quicklistCreate();
- robj *o = createObject(REDIS_LIST,l);
- o->encoding = REDIS_ENCODING_QUICKLIST;
+ robj *o = createObject(OBJ_LIST,l);
+ o->encoding = OBJ_ENCODING_QUICKLIST;
return o;
}
robj *createZiplistObject(void) {
unsigned char *zl = ziplistNew();
- robj *o = createObject(REDIS_LIST,zl);
- o->encoding = REDIS_ENCODING_ZIPLIST;
+ robj *o = createObject(OBJ_LIST,zl);
+ o->encoding = OBJ_ENCODING_ZIPLIST;
return o;
}
robj *createSetObject(void) {
dict *d = dictCreate(&setDictType,NULL);
- robj *o = createObject(REDIS_SET,d);
- o->encoding = REDIS_ENCODING_HT;
+ robj *o = createObject(OBJ_SET,d);
+ o->encoding = OBJ_ENCODING_HT;
return o;
}
robj *createIntsetObject(void) {
intset *is = intsetNew();
- robj *o = createObject(REDIS_SET,is);
- o->encoding = REDIS_ENCODING_INTSET;
+ robj *o = createObject(OBJ_SET,is);
+ o->encoding = OBJ_ENCODING_INTSET;
return o;
}
robj *createHashObject(void) {
unsigned char *zl = ziplistNew();
- robj *o = createObject(REDIS_HASH, zl);
- o->encoding = REDIS_ENCODING_ZIPLIST;
+ robj *o = createObject(OBJ_HASH, zl);
+ o->encoding = OBJ_ENCODING_ZIPLIST;
return o;
}
@@ -222,27 +222,27 @@ robj *createZsetObject(void) {
zs->dict = dictCreate(&zsetDictType,NULL);
zs->zsl = zslCreate();
- o = createObject(REDIS_ZSET,zs);
- o->encoding = REDIS_ENCODING_SKIPLIST;
+ o = createObject(OBJ_ZSET,zs);
+ o->encoding = OBJ_ENCODING_SKIPLIST;
return o;
}
robj *createZsetZiplistObject(void) {
unsigned char *zl = ziplistNew();
- robj *o = createObject(REDIS_ZSET,zl);
- o->encoding = REDIS_ENCODING_ZIPLIST;
+ robj *o = createObject(OBJ_ZSET,zl);
+ o->encoding = OBJ_ENCODING_ZIPLIST;
return o;
}
void freeStringObject(robj *o) {
- if (o->encoding == REDIS_ENCODING_RAW) {
+ if (o->encoding == OBJ_ENCODING_RAW) {
sdsfree(o->ptr);
}
}
void freeListObject(robj *o) {
switch (o->encoding) {
- case REDIS_ENCODING_QUICKLIST:
+ case OBJ_ENCODING_QUICKLIST:
quicklistRelease(o->ptr);
break;
default:
@@ -252,10 +252,10 @@ void freeListObject(robj *o) {
void freeSetObject(robj *o) {
switch (o->encoding) {
- case REDIS_ENCODING_HT:
+ case OBJ_ENCODING_HT:
dictRelease((dict*) o->ptr);
break;
- case REDIS_ENCODING_INTSET:
+ case OBJ_ENCODING_INTSET:
zfree(o->ptr);
break;
default:
@@ -266,13 +266,13 @@ void freeSetObject(robj *o) {
void freeZsetObject(robj *o) {
zset *zs;
switch (o->encoding) {
- case REDIS_ENCODING_SKIPLIST:
+ case OBJ_ENCODING_SKIPLIST:
zs = o->ptr;
dictRelease(zs->dict);
zslFree(zs->zsl);
zfree(zs);
break;
- case REDIS_ENCODING_ZIPLIST:
+ case OBJ_ENCODING_ZIPLIST:
zfree(o->ptr);
break;
default:
@@ -282,10 +282,10 @@ void freeZsetObject(robj *o) {
void freeHashObject(robj *o) {
switch (o->encoding) {
- case REDIS_ENCODING_HT:
+ case OBJ_ENCODING_HT:
dictRelease((dict*) o->ptr);
break;
- case REDIS_ENCODING_ZIPLIST:
+ case OBJ_ENCODING_ZIPLIST:
zfree(o->ptr);
break;
default:
@@ -302,11 +302,11 @@ void decrRefCount(robj *o) {
if (o->refcount <= 0) redisPanic("decrRefCount against refcount <= 0");
if (o->refcount == 1) {
switch(o->type) {
- case REDIS_STRING: freeStringObject(o); break;
- case REDIS_LIST: freeListObject(o); break;
- case REDIS_SET: freeSetObject(o); break;
- case REDIS_ZSET: freeZsetObject(o); break;
- case REDIS_HASH: freeHashObject(o); break;
+ case OBJ_STRING: freeStringObject(o); break;
+ case OBJ_LIST: freeListObject(o); break;
+ case OBJ_SET: freeSetObject(o); break;
+ case OBJ_ZSET: freeZsetObject(o); break;
+ case OBJ_HASH: freeHashObject(o); break;
default: redisPanic("Unknown object type"); break;
}
zfree(o);
@@ -348,8 +348,8 @@ int checkType(client *c, robj *o, int type) {
}
int isObjectRepresentableAsLongLong(robj *o, long long *llval) {
- redisAssertWithInfo(NULL,o,o->type == REDIS_STRING);
- if (o->encoding == REDIS_ENCODING_INT) {
+ redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
+ if (o->encoding == OBJ_ENCODING_INT) {
if (llval) *llval = (long) o->ptr;
return REDIS_OK;
} else {
@@ -367,7 +367,7 @@ robj *tryObjectEncoding(robj *o) {
* in this function. Other types use encoded memory efficient
* representations but are handled by the commands implementing
* the type. */
- redisAssertWithInfo(NULL,o,o->type == REDIS_STRING);
+ redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
/* We try some specialized encoding only for objects that are
* RAW or EMBSTR encoded, in other words objects that are still
@@ -398,8 +398,8 @@ robj *tryObjectEncoding(robj *o) {
incrRefCount(shared.integers[value]);
return shared.integers[value];
} else {
- if (o->encoding == REDIS_ENCODING_RAW) sdsfree(o->ptr);
- o->encoding = REDIS_ENCODING_INT;
+ if (o->encoding == OBJ_ENCODING_RAW) sdsfree(o->ptr);
+ o->encoding = OBJ_ENCODING_INT;
o->ptr = (void*) value;
return o;
}
@@ -409,10 +409,10 @@ robj *tryObjectEncoding(robj *o) {
* try the EMBSTR encoding which is more efficient.
* In this representation the object and the SDS string are allocated
* in the same chunk of memory to save space and cache misses. */
- if (len <= REDIS_ENCODING_EMBSTR_SIZE_LIMIT) {
+ if (len <= OBJ_ENCODING_EMBSTR_SIZE_LIMIT) {
robj *emb;
- if (o->encoding == REDIS_ENCODING_EMBSTR) return o;
+ if (o->encoding == OBJ_ENCODING_EMBSTR) return o;
emb = createEmbeddedStringObject(s,sdslen(s));
decrRefCount(o);
return emb;
@@ -426,8 +426,8 @@ robj *tryObjectEncoding(robj *o) {
*
* We do that only for relatively large strings as this branch
* is only entered if the length of the string is greater than
- * REDIS_ENCODING_EMBSTR_SIZE_LIMIT. */
- if (o->encoding == REDIS_ENCODING_RAW &&
+ * OBJ_ENCODING_EMBSTR_SIZE_LIMIT. */
+ if (o->encoding == OBJ_ENCODING_RAW &&
sdsavail(s) > len/10)
{
o->ptr = sdsRemoveFreeSpace(o->ptr);
@@ -446,7 +446,7 @@ robj *getDecodedObject(robj *o) {
incrRefCount(o);
return o;
}
- if (o->type == REDIS_STRING && o->encoding == REDIS_ENCODING_INT) {
+ if (o->type == OBJ_STRING && o->encoding == OBJ_ENCODING_INT) {
char buf[32];
ll2string(buf,32,(long)o->ptr);
@@ -469,7 +469,7 @@ robj *getDecodedObject(robj *o) {
#define REDIS_COMPARE_COLL (1<<1)
int compareStringObjectsWithFlags(robj *a, robj *b, int flags) {
- redisAssertWithInfo(NULL,a,a->type == REDIS_STRING && b->type == REDIS_STRING);
+ redisAssertWithInfo(NULL,a,a->type == OBJ_STRING && b->type == OBJ_STRING);
char bufa[128], bufb[128], *astr, *bstr;
size_t alen, blen, minlen;
@@ -515,8 +515,8 @@ int collateStringObjects(robj *a, robj *b) {
* this function is faster then checking for (compareStringObject(a,b) == 0)
* because it can perform some more optimization. */
int equalStringObjects(robj *a, robj *b) {
- if (a->encoding == REDIS_ENCODING_INT &&
- b->encoding == REDIS_ENCODING_INT){
+ if (a->encoding == OBJ_ENCODING_INT &&
+ b->encoding == OBJ_ENCODING_INT){
/* If both strings are integer encoded just check if the stored
* long is the same. */
return a->ptr == b->ptr;
@@ -526,7 +526,7 @@ int equalStringObjects(robj *a, robj *b) {
}
size_t stringObjectLen(robj *o) {
- redisAssertWithInfo(NULL,o,o->type == REDIS_STRING);
+ redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) {
return sdslen(o->ptr);
} else {
@@ -541,7 +541,7 @@ int getDoubleFromObject(robj *o, double *target) {
if (o == NULL) {
value = 0;
} else {
- redisAssertWithInfo(NULL,o,o->type == REDIS_STRING);
+ redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) {
errno = 0;
value = strtod(o->ptr, &eptr);
@@ -552,7 +552,7 @@ int getDoubleFromObject(robj *o, double *target) {
errno == EINVAL ||
isnan(value))
return REDIS_ERR;
- } else if (o->encoding == REDIS_ENCODING_INT) {
+ } else if (o->encoding == OBJ_ENCODING_INT) {
value = (long)o->ptr;
} else {
redisPanic("Unknown string encoding");
@@ -583,14 +583,14 @@ int getLongDoubleFromObject(robj *o, long double *target) {
if (o == NULL) {
value = 0;
} else {
- redisAssertWithInfo(NULL,o,o->type == REDIS_STRING);
+ redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) {
errno = 0;
value = strtold(o->ptr, &eptr);
if (isspace(((char*)o->ptr)[0]) || eptr[0] != '\0' ||
errno == ERANGE || isnan(value))
return REDIS_ERR;
- } else if (o->encoding == REDIS_ENCODING_INT) {
+ } else if (o->encoding == OBJ_ENCODING_INT) {
value = (long)o->ptr;
} else {
redisPanic("Unknown string encoding");
@@ -621,14 +621,14 @@ int getLongLongFromObject(robj *o, long long *target) {
if (o == NULL) {
value = 0;
} else {
- redisAssertWithInfo(NULL,o,o->type == REDIS_STRING);
+ redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) {
errno = 0;
value = strtoll(o->ptr, &eptr, 10);
if (isspace(((char*)o->ptr)[0]) || eptr[0] != '\0' ||
errno == ERANGE)
return REDIS_ERR;
- } else if (o->encoding == REDIS_ENCODING_INT) {
+ } else if (o->encoding == OBJ_ENCODING_INT) {
value = (long)o->ptr;
} else {
redisPanic("Unknown string encoding");
@@ -670,14 +670,14 @@ int getLongFromObjectOrReply(client *c, robj *o, long *target, const char *msg)
char *strEncoding(int encoding) {
switch(encoding) {
- case REDIS_ENCODING_RAW: return "raw";
- case REDIS_ENCODING_INT: return "int";
- case REDIS_ENCODING_HT: return "hashtable";
- case REDIS_ENCODING_QUICKLIST: return "quicklist";
- case REDIS_ENCODING_ZIPLIST: return "ziplist";
- case REDIS_ENCODING_INTSET: return "intset";
- case REDIS_ENCODING_SKIPLIST: return "skiplist";
- case REDIS_ENCODING_EMBSTR: return "embstr";
+ case OBJ_ENCODING_RAW: return "raw";
+ case OBJ_ENCODING_INT: return "int";
+ case OBJ_ENCODING_HT: return "hashtable";
+ case OBJ_ENCODING_QUICKLIST: return "quicklist";
+ case OBJ_ENCODING_ZIPLIST: return "ziplist";
+ case OBJ_ENCODING_INTSET: return "intset";
+ case OBJ_ENCODING_SKIPLIST: return "skiplist";
+ case OBJ_ENCODING_EMBSTR: return "embstr";
default: return "unknown";
}
}