Commit 14ff5724 authored by antirez's avatar antirez
Browse files

RDMF: OBJ_ macros for object related stuff.

parent 554bd0e7
...@@ -666,7 +666,7 @@ int loadAppendOnlyFile(char *filename) { ...@@ -666,7 +666,7 @@ int loadAppendOnlyFile(char *filename) {
freeFakeClientArgv(fakeClient); freeFakeClientArgv(fakeClient);
goto readerr; goto readerr;
} }
argv[j] = createObject(REDIS_STRING,argsds); argv[j] = createObject(OBJ_STRING,argsds);
if (fread(buf,2,1,fp) == 0) { if (fread(buf,2,1,fp) == 0) {
fakeClient->argc = j+1; /* Free up to j. */ fakeClient->argc = j+1; /* Free up to j. */
freeFakeClientArgv(fakeClient); freeFakeClientArgv(fakeClient);
...@@ -756,7 +756,7 @@ fmterr: /* Format error. */ ...@@ -756,7 +756,7 @@ fmterr: /* Format error. */
int rioWriteBulkObject(rio *r, robj *obj) { int rioWriteBulkObject(rio *r, robj *obj) {
/* Avoid using getDecodedObject to help copy-on-write (we are often /* Avoid using getDecodedObject to help copy-on-write (we are often
* in a child process when this function is called). */ * in a child process when this function is called). */
if (obj->encoding == REDIS_ENCODING_INT) { if (obj->encoding == OBJ_ENCODING_INT) {
return rioWriteBulkLongLong(r,(long)obj->ptr); return rioWriteBulkLongLong(r,(long)obj->ptr);
} else if (sdsEncodedObject(obj)) { } else if (sdsEncodedObject(obj)) {
return rioWriteBulkString(r,obj->ptr,sdslen(obj->ptr)); return rioWriteBulkString(r,obj->ptr,sdslen(obj->ptr));
...@@ -770,7 +770,7 @@ int rioWriteBulkObject(rio *r, robj *obj) { ...@@ -770,7 +770,7 @@ int rioWriteBulkObject(rio *r, robj *obj) {
int rewriteListObject(rio *r, robj *key, robj *o) { int rewriteListObject(rio *r, robj *key, robj *o) {
long long count = 0, items = listTypeLength(o); long long count = 0, items = listTypeLength(o);
if (o->encoding == REDIS_ENCODING_QUICKLIST) { if (o->encoding == OBJ_ENCODING_QUICKLIST) {
quicklist *list = o->ptr; quicklist *list = o->ptr;
quicklistIter *li = quicklistGetIterator(list, AL_START_HEAD); quicklistIter *li = quicklistGetIterator(list, AL_START_HEAD);
quicklistEntry entry; quicklistEntry entry;
...@@ -804,7 +804,7 @@ int rewriteListObject(rio *r, robj *key, robj *o) { ...@@ -804,7 +804,7 @@ int rewriteListObject(rio *r, robj *key, robj *o) {
int rewriteSetObject(rio *r, robj *key, robj *o) { int rewriteSetObject(rio *r, robj *key, robj *o) {
long long count = 0, items = setTypeSize(o); long long count = 0, items = setTypeSize(o);
if (o->encoding == REDIS_ENCODING_INTSET) { if (o->encoding == OBJ_ENCODING_INTSET) {
int ii = 0; int ii = 0;
int64_t llval; int64_t llval;
...@@ -821,7 +821,7 @@ int rewriteSetObject(rio *r, robj *key, robj *o) { ...@@ -821,7 +821,7 @@ int rewriteSetObject(rio *r, robj *key, robj *o) {
if (++count == REDIS_AOF_REWRITE_ITEMS_PER_CMD) count = 0; if (++count == REDIS_AOF_REWRITE_ITEMS_PER_CMD) count = 0;
items--; items--;
} }
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
dictIterator *di = dictGetIterator(o->ptr); dictIterator *di = dictGetIterator(o->ptr);
dictEntry *de; dictEntry *de;
...@@ -851,7 +851,7 @@ int rewriteSetObject(rio *r, robj *key, robj *o) { ...@@ -851,7 +851,7 @@ int rewriteSetObject(rio *r, robj *key, robj *o) {
int rewriteSortedSetObject(rio *r, robj *key, robj *o) { int rewriteSortedSetObject(rio *r, robj *key, robj *o) {
long long count = 0, items = zsetLength(o); long long count = 0, items = zsetLength(o);
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *zl = o->ptr; unsigned char *zl = o->ptr;
unsigned char *eptr, *sptr; unsigned char *eptr, *sptr;
unsigned char *vstr; unsigned char *vstr;
...@@ -886,7 +886,7 @@ int rewriteSortedSetObject(rio *r, robj *key, robj *o) { ...@@ -886,7 +886,7 @@ int rewriteSortedSetObject(rio *r, robj *key, robj *o) {
if (++count == REDIS_AOF_REWRITE_ITEMS_PER_CMD) count = 0; if (++count == REDIS_AOF_REWRITE_ITEMS_PER_CMD) count = 0;
items--; items--;
} }
} else if (o->encoding == REDIS_ENCODING_SKIPLIST) { } else if (o->encoding == OBJ_ENCODING_SKIPLIST) {
zset *zs = o->ptr; zset *zs = o->ptr;
dictIterator *di = dictGetIterator(zs->dict); dictIterator *di = dictGetIterator(zs->dict);
dictEntry *de; dictEntry *de;
...@@ -918,11 +918,11 @@ int rewriteSortedSetObject(rio *r, robj *key, robj *o) { ...@@ -918,11 +918,11 @@ int rewriteSortedSetObject(rio *r, robj *key, robj *o) {
/* Write either the key or the value of the currently selected item of a hash. /* Write either the key or the value of the currently selected item of a hash.
* The 'hi' argument passes a valid Redis hash iterator. * The 'hi' argument passes a valid Redis hash iterator.
* The 'what' filed specifies if to write a key or a value and can be * The 'what' filed specifies if to write a key or a value and can be
* either REDIS_HASH_KEY or REDIS_HASH_VALUE. * either OBJ_HASH_KEY or OBJ_HASH_VALUE.
* *
* The function returns 0 on error, non-zero on success. */ * The function returns 0 on error, non-zero on success. */
static int rioWriteHashIteratorCursor(rio *r, hashTypeIterator *hi, int what) { static int rioWriteHashIteratorCursor(rio *r, hashTypeIterator *hi, int what) {
if (hi->encoding == REDIS_ENCODING_ZIPLIST) { if (hi->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
unsigned int vlen = UINT_MAX; unsigned int vlen = UINT_MAX;
long long vll = LLONG_MAX; long long vll = LLONG_MAX;
...@@ -934,7 +934,7 @@ static int rioWriteHashIteratorCursor(rio *r, hashTypeIterator *hi, int what) { ...@@ -934,7 +934,7 @@ static int rioWriteHashIteratorCursor(rio *r, hashTypeIterator *hi, int what) {
return rioWriteBulkLongLong(r, vll); return rioWriteBulkLongLong(r, vll);
} }
} else if (hi->encoding == REDIS_ENCODING_HT) { } else if (hi->encoding == OBJ_ENCODING_HT) {
robj *value; robj *value;
hashTypeCurrentFromHashTable(hi, what, &value); hashTypeCurrentFromHashTable(hi, what, &value);
...@@ -962,8 +962,8 @@ int rewriteHashObject(rio *r, robj *key, robj *o) { ...@@ -962,8 +962,8 @@ int rewriteHashObject(rio *r, robj *key, robj *o) {
if (rioWriteBulkObject(r,key) == 0) return 0; if (rioWriteBulkObject(r,key) == 0) return 0;
} }
if (rioWriteHashIteratorCursor(r, hi, REDIS_HASH_KEY) == 0) return 0; if (rioWriteHashIteratorCursor(r, hi, OBJ_HASH_KEY) == 0) return 0;
if (rioWriteHashIteratorCursor(r, hi, REDIS_HASH_VALUE) == 0) return 0; if (rioWriteHashIteratorCursor(r, hi, OBJ_HASH_VALUE) == 0) return 0;
if (++count == REDIS_AOF_REWRITE_ITEMS_PER_CMD) count = 0; if (++count == REDIS_AOF_REWRITE_ITEMS_PER_CMD) count = 0;
items--; items--;
} }
...@@ -1050,20 +1050,20 @@ int rewriteAppendOnlyFile(char *filename) { ...@@ -1050,20 +1050,20 @@ int rewriteAppendOnlyFile(char *filename) {
if (expiretime != -1 && expiretime < now) continue; if (expiretime != -1 && expiretime < now) continue;
/* Save the key and associated value */ /* Save the key and associated value */
if (o->type == REDIS_STRING) { if (o->type == OBJ_STRING) {
/* Emit a SET command */ /* Emit a SET command */
char cmd[]="*3\r\n$3\r\nSET\r\n"; char cmd[]="*3\r\n$3\r\nSET\r\n";
if (rioWrite(&aof,cmd,sizeof(cmd)-1) == 0) goto werr; if (rioWrite(&aof,cmd,sizeof(cmd)-1) == 0) goto werr;
/* Key and value */ /* Key and value */
if (rioWriteBulkObject(&aof,&key) == 0) goto werr; if (rioWriteBulkObject(&aof,&key) == 0) goto werr;
if (rioWriteBulkObject(&aof,o) == 0) goto werr; if (rioWriteBulkObject(&aof,o) == 0) goto werr;
} else if (o->type == REDIS_LIST) { } else if (o->type == OBJ_LIST) {
if (rewriteListObject(&aof,&key,o) == 0) goto werr; if (rewriteListObject(&aof,&key,o) == 0) goto werr;
} else if (o->type == REDIS_SET) { } else if (o->type == OBJ_SET) {
if (rewriteSetObject(&aof,&key,o) == 0) goto werr; if (rewriteSetObject(&aof,&key,o) == 0) goto werr;
} else if (o->type == REDIS_ZSET) { } else if (o->type == OBJ_ZSET) {
if (rewriteSortedSetObject(&aof,&key,o) == 0) goto werr; if (rewriteSortedSetObject(&aof,&key,o) == 0) goto werr;
} else if (o->type == REDIS_HASH) { } else if (o->type == OBJ_HASH) {
if (rewriteHashObject(&aof,&key,o) == 0) goto werr; if (rewriteHashObject(&aof,&key,o) == 0) goto werr;
} else { } else {
redisPanic("Unknown object type"); redisPanic("Unknown object type");
......
...@@ -232,10 +232,10 @@ void setbitCommand(client *c) { ...@@ -232,10 +232,10 @@ void setbitCommand(client *c) {
byte = bitoffset >> 3; byte = bitoffset >> 3;
o = lookupKeyWrite(c->db,c->argv[1]); o = lookupKeyWrite(c->db,c->argv[1]);
if (o == NULL) { if (o == NULL) {
o = createObject(REDIS_STRING,sdsnewlen(NULL, byte+1)); o = createObject(OBJ_STRING,sdsnewlen(NULL, byte+1));
dbAdd(c->db,c->argv[1],o); dbAdd(c->db,c->argv[1],o);
} else { } else {
if (checkType(c,o,REDIS_STRING)) return; if (checkType(c,o,OBJ_STRING)) return;
o = dbUnshareStringValue(c->db,c->argv[1],o); o = dbUnshareStringValue(c->db,c->argv[1],o);
o->ptr = sdsgrowzero(o->ptr,byte+1); o->ptr = sdsgrowzero(o->ptr,byte+1);
} }
...@@ -267,7 +267,7 @@ void getbitCommand(client *c) { ...@@ -267,7 +267,7 @@ void getbitCommand(client *c) {
return; return;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL || if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL ||
checkType(c,o,REDIS_STRING)) return; checkType(c,o,OBJ_STRING)) return;
byte = bitoffset >> 3; byte = bitoffset >> 3;
bit = 7 - (bitoffset & 0x7); bit = 7 - (bitoffset & 0x7);
...@@ -330,7 +330,7 @@ void bitopCommand(client *c) { ...@@ -330,7 +330,7 @@ void bitopCommand(client *c) {
continue; continue;
} }
/* Return an error if one of the keys is not a string. */ /* Return an error if one of the keys is not a string. */
if (checkType(c,o,REDIS_STRING)) { if (checkType(c,o,OBJ_STRING)) {
unsigned long i; unsigned long i;
for (i = 0; i < j; i++) { for (i = 0; i < j; i++) {
if (objects[i]) if (objects[i])
...@@ -444,7 +444,7 @@ void bitopCommand(client *c) { ...@@ -444,7 +444,7 @@ void bitopCommand(client *c) {
/* Store the computed value into the target key */ /* Store the computed value into the target key */
if (maxlen) { if (maxlen) {
o = createObject(REDIS_STRING,res); o = createObject(OBJ_STRING,res);
setKey(c->db,targetkey,o); setKey(c->db,targetkey,o);
notifyKeyspaceEvent(REDIS_NOTIFY_STRING,"set",targetkey,c->db->id); notifyKeyspaceEvent(REDIS_NOTIFY_STRING,"set",targetkey,c->db->id);
decrRefCount(o); decrRefCount(o);
...@@ -465,11 +465,11 @@ void bitcountCommand(client *c) { ...@@ -465,11 +465,11 @@ void bitcountCommand(client *c) {
/* Lookup, check for type, and return 0 for non existing keys. */ /* Lookup, check for type, and return 0 for non existing keys. */
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL || if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL ||
checkType(c,o,REDIS_STRING)) return; checkType(c,o,OBJ_STRING)) return;
/* Set the 'p' pointer to the string, that can be just a stack allocated /* Set the 'p' pointer to the string, that can be just a stack allocated
* array if our string was integer encoded. */ * array if our string was integer encoded. */
if (o->encoding == REDIS_ENCODING_INT) { if (o->encoding == OBJ_ENCODING_INT) {
p = (unsigned char*) llbuf; p = (unsigned char*) llbuf;
strlen = ll2string(llbuf,sizeof(llbuf),(long)o->ptr); strlen = ll2string(llbuf,sizeof(llbuf),(long)o->ptr);
} else { } else {
...@@ -534,11 +534,11 @@ void bitposCommand(client *c) { ...@@ -534,11 +534,11 @@ void bitposCommand(client *c) {
addReplyLongLong(c, bit ? -1 : 0); addReplyLongLong(c, bit ? -1 : 0);
return; return;
} }
if (checkType(c,o,REDIS_STRING)) return; if (checkType(c,o,OBJ_STRING)) return;
/* Set the 'p' pointer to the string, that can be just a stack allocated /* Set the 'p' pointer to the string, that can be just a stack allocated
* array if our string was integer encoded. */ * array if our string was integer encoded. */
if (o->encoding == REDIS_ENCODING_INT) { if (o->encoding == OBJ_ENCODING_INT) {
p = (unsigned char*) llbuf; p = (unsigned char*) llbuf;
strlen = ll2string(llbuf,sizeof(llbuf),(long)o->ptr); strlen = ll2string(llbuf,sizeof(llbuf),(long)o->ptr);
} else { } else {
......
...@@ -3832,7 +3832,7 @@ void clusterCommand(client *c) { ...@@ -3832,7 +3832,7 @@ void clusterCommand(client *c) {
robj *o; robj *o;
sds ci = clusterGenNodesDescription(0); sds ci = clusterGenNodesDescription(0);
o = createObject(REDIS_STRING,ci); o = createObject(OBJ_STRING,ci);
addReplyBulk(c,o); addReplyBulk(c,o);
decrRefCount(o); decrRefCount(o);
} else if (!strcasecmp(c->argv[1]->ptr,"myid") && c->argc == 2) { } else if (!strcasecmp(c->argv[1]->ptr,"myid") && c->argc == 2) {
...@@ -4377,7 +4377,7 @@ void dumpCommand(client *c) { ...@@ -4377,7 +4377,7 @@ void dumpCommand(client *c) {
createDumpPayload(&payload,o); createDumpPayload(&payload,o);
/* Transfer to the client */ /* Transfer to the client */
dumpobj = createObject(REDIS_STRING,payload.io.buffer.ptr); dumpobj = createObject(OBJ_STRING,payload.io.buffer.ptr);
addReplyBulk(c,dumpobj); addReplyBulk(c,dumpobj);
decrRefCount(dumpobj); decrRefCount(dumpobj);
return; return;
......
...@@ -1197,7 +1197,7 @@ void configGetCommand(client *c) { ...@@ -1197,7 +1197,7 @@ void configGetCommand(client *c) {
matches++; matches++;
} }
if (stringmatch(pattern,"notify-keyspace-events",0)) { if (stringmatch(pattern,"notify-keyspace-events",0)) {
robj *flagsobj = createObject(REDIS_STRING, robj *flagsobj = createObject(OBJ_STRING,
keyspaceEventsFlagsToString(server.notify_keyspace_events)); keyspaceEventsFlagsToString(server.notify_keyspace_events));
addReplyBulkCString(c,"notify-keyspace-events"); addReplyBulkCString(c,"notify-keyspace-events");
...@@ -1806,13 +1806,13 @@ int rewriteConfig(char *path) { ...@@ -1806,13 +1806,13 @@ int rewriteConfig(char *path) {
rewriteConfigNumericalOption(state,"latency-monitor-threshold",server.latency_monitor_threshold,CONFIG_DEFAULT_LATENCY_MONITOR_THRESHOLD); rewriteConfigNumericalOption(state,"latency-monitor-threshold",server.latency_monitor_threshold,CONFIG_DEFAULT_LATENCY_MONITOR_THRESHOLD);
rewriteConfigNumericalOption(state,"slowlog-max-len",server.slowlog_max_len,REDIS_SLOWLOG_MAX_LEN); rewriteConfigNumericalOption(state,"slowlog-max-len",server.slowlog_max_len,REDIS_SLOWLOG_MAX_LEN);
rewriteConfigNotifykeyspaceeventsOption(state); rewriteConfigNotifykeyspaceeventsOption(state);
rewriteConfigNumericalOption(state,"hash-max-ziplist-entries",server.hash_max_ziplist_entries,REDIS_HASH_MAX_ZIPLIST_ENTRIES); rewriteConfigNumericalOption(state,"hash-max-ziplist-entries",server.hash_max_ziplist_entries,OBJ_HASH_MAX_ZIPLIST_ENTRIES);
rewriteConfigNumericalOption(state,"hash-max-ziplist-value",server.hash_max_ziplist_value,REDIS_HASH_MAX_ZIPLIST_VALUE); rewriteConfigNumericalOption(state,"hash-max-ziplist-value",server.hash_max_ziplist_value,OBJ_HASH_MAX_ZIPLIST_VALUE);
rewriteConfigNumericalOption(state,"list-max-ziplist-size",server.list_max_ziplist_size,REDIS_LIST_MAX_ZIPLIST_SIZE); rewriteConfigNumericalOption(state,"list-max-ziplist-size",server.list_max_ziplist_size,OBJ_LIST_MAX_ZIPLIST_SIZE);
rewriteConfigNumericalOption(state,"list-compress-depth",server.list_compress_depth,REDIS_LIST_COMPRESS_DEPTH); rewriteConfigNumericalOption(state,"list-compress-depth",server.list_compress_depth,OBJ_LIST_COMPRESS_DEPTH);
rewriteConfigNumericalOption(state,"set-max-intset-entries",server.set_max_intset_entries,REDIS_SET_MAX_INTSET_ENTRIES); rewriteConfigNumericalOption(state,"set-max-intset-entries",server.set_max_intset_entries,OBJ_SET_MAX_INTSET_ENTRIES);
rewriteConfigNumericalOption(state,"zset-max-ziplist-entries",server.zset_max_ziplist_entries,REDIS_ZSET_MAX_ZIPLIST_ENTRIES); rewriteConfigNumericalOption(state,"zset-max-ziplist-entries",server.zset_max_ziplist_entries,OBJ_ZSET_MAX_ZIPLIST_ENTRIES);
rewriteConfigNumericalOption(state,"zset-max-ziplist-value",server.zset_max_ziplist_value,REDIS_ZSET_MAX_ZIPLIST_VALUE); rewriteConfigNumericalOption(state,"zset-max-ziplist-value",server.zset_max_ziplist_value,OBJ_ZSET_MAX_ZIPLIST_VALUE);
rewriteConfigNumericalOption(state,"hll-sparse-max-bytes",server.hll_sparse_max_bytes,CONFIG_DEFAULT_HLL_SPARSE_MAX_BYTES); rewriteConfigNumericalOption(state,"hll-sparse-max-bytes",server.hll_sparse_max_bytes,CONFIG_DEFAULT_HLL_SPARSE_MAX_BYTES);
rewriteConfigYesNoOption(state,"activerehashing",server.activerehashing,CONFIG_DEFAULT_ACTIVE_REHASHING); rewriteConfigYesNoOption(state,"activerehashing",server.activerehashing,CONFIG_DEFAULT_ACTIVE_REHASHING);
rewriteConfigClientoutputbufferlimitOption(state); rewriteConfigClientoutputbufferlimitOption(state);
......
...@@ -120,7 +120,7 @@ void dbAdd(redisDb *db, robj *key, robj *val) { ...@@ -120,7 +120,7 @@ void dbAdd(redisDb *db, robj *key, robj *val) {
int retval = dictAdd(db->dict, copy, val); int retval = dictAdd(db->dict, copy, val);
redisAssertWithInfo(NULL,key,retval == REDIS_OK); redisAssertWithInfo(NULL,key,retval == REDIS_OK);
if (val->type == REDIS_LIST) signalListAsReady(db, key); if (val->type == OBJ_LIST) signalListAsReady(db, key);
if (server.cluster_enabled) slotToKeyAdd(key); if (server.cluster_enabled) slotToKeyAdd(key);
} }
...@@ -217,15 +217,15 @@ int dbDelete(redisDb *db, robj *key) { ...@@ -217,15 +217,15 @@ int dbDelete(redisDb *db, robj *key) {
* in 'db', the usage pattern looks like this: * in 'db', the usage pattern looks like this:
* *
* o = lookupKeyWrite(db,key); * o = lookupKeyWrite(db,key);
* if (checkType(c,o,REDIS_STRING)) return; * if (checkType(c,o,OBJ_STRING)) return;
* o = dbUnshareStringValue(db,key,o); * o = dbUnshareStringValue(db,key,o);
* *
* At this point the caller is ready to modify the object, for example * At this point the caller is ready to modify the object, for example
* using an sdscat() call to append some data, or anything else. * using an sdscat() call to append some data, or anything else.
*/ */
robj *dbUnshareStringValue(redisDb *db, robj *key, robj *o) { robj *dbUnshareStringValue(redisDb *db, robj *key, robj *o) {
redisAssert(o->type == REDIS_STRING); redisAssert(o->type == OBJ_STRING);
if (o->refcount != 1 || o->encoding != REDIS_ENCODING_RAW) { if (o->refcount != 1 || o->encoding != OBJ_ENCODING_RAW) {
robj *decoded = getDecodedObject(o); robj *decoded = getDecodedObject(o);
o = createRawStringObject(decoded->ptr, sdslen(decoded->ptr)); o = createRawStringObject(decoded->ptr, sdslen(decoded->ptr));
decrRefCount(decoded); decrRefCount(decoded);
...@@ -399,15 +399,15 @@ void scanCallback(void *privdata, const dictEntry *de) { ...@@ -399,15 +399,15 @@ void scanCallback(void *privdata, const dictEntry *de) {
if (o == NULL) { if (o == NULL) {
sds sdskey = dictGetKey(de); sds sdskey = dictGetKey(de);
key = createStringObject(sdskey, sdslen(sdskey)); key = createStringObject(sdskey, sdslen(sdskey));
} else if (o->type == REDIS_SET) { } else if (o->type == OBJ_SET) {
key = dictGetKey(de); key = dictGetKey(de);
incrRefCount(key); incrRefCount(key);
} else if (o->type == REDIS_HASH) { } else if (o->type == OBJ_HASH) {
key = dictGetKey(de); key = dictGetKey(de);
incrRefCount(key); incrRefCount(key);
val = dictGetVal(de); val = dictGetVal(de);
incrRefCount(val); incrRefCount(val);
} else if (o->type == REDIS_ZSET) { } else if (o->type == OBJ_ZSET) {
key = dictGetKey(de); key = dictGetKey(de);
incrRefCount(key); incrRefCount(key);
val = createStringObjectFromLongDouble(*(double*)dictGetVal(de),0); val = createStringObjectFromLongDouble(*(double*)dictGetVal(de),0);
...@@ -460,8 +460,8 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) { ...@@ -460,8 +460,8 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) {
/* Object must be NULL (to iterate keys names), or the type of the object /* Object must be NULL (to iterate keys names), or the type of the object
* must be Set, Sorted Set, or Hash. */ * must be Set, Sorted Set, or Hash. */
redisAssert(o == NULL || o->type == REDIS_SET || o->type == REDIS_HASH || redisAssert(o == NULL || o->type == OBJ_SET || o->type == OBJ_HASH ||
o->type == REDIS_ZSET); o->type == OBJ_ZSET);
/* Set i to the first option argument. The previous one is the cursor. */ /* Set i to the first option argument. The previous one is the cursor. */
i = (o == NULL) ? 2 : 3; /* Skip the key argument if needed. */ i = (o == NULL) ? 2 : 3; /* Skip the key argument if needed. */
...@@ -509,12 +509,12 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) { ...@@ -509,12 +509,12 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) {
ht = NULL; ht = NULL;
if (o == NULL) { if (o == NULL) {
ht = c->db->dict; ht = c->db->dict;
} else if (o->type == REDIS_SET && o->encoding == REDIS_ENCODING_HT) { } else if (o->type == OBJ_SET && o->encoding == OBJ_ENCODING_HT) {
ht = o->ptr; ht = o->ptr;
} else if (o->type == REDIS_HASH && o->encoding == REDIS_ENCODING_HT) { } else if (o->type == OBJ_HASH && o->encoding == OBJ_ENCODING_HT) {
ht = o->ptr; ht = o->ptr;
count *= 2; /* We return key / value for this type. */ count *= 2; /* We return key / value for this type. */
} else if (o->type == REDIS_ZSET && o->encoding == REDIS_ENCODING_SKIPLIST) { } else if (o->type == OBJ_ZSET && o->encoding == OBJ_ENCODING_SKIPLIST) {
zset *zs = o->ptr; zset *zs = o->ptr;
ht = zs->dict; ht = zs->dict;
count *= 2; /* We return key / value for this type. */ count *= 2; /* We return key / value for this type. */
...@@ -538,14 +538,14 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) { ...@@ -538,14 +538,14 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) {
} while (cursor && } while (cursor &&
maxiterations-- && maxiterations-- &&
listLength(keys) < (unsigned long)count); listLength(keys) < (unsigned long)count);
} else if (o->type == REDIS_SET) { } else if (o->type == OBJ_SET) {
int pos = 0; int pos = 0;
int64_t ll; int64_t ll;
while(intsetGet(o->ptr,pos++,&ll)) while(intsetGet(o->ptr,pos++,&ll))
listAddNodeTail(keys,createStringObjectFromLongLong(ll)); listAddNodeTail(keys,createStringObjectFromLongLong(ll));
cursor = 0; cursor = 0;
} else if (o->type == REDIS_HASH || o->type == REDIS_ZSET) { } else if (o->type == OBJ_HASH || o->type == OBJ_ZSET) {
unsigned char *p = ziplistIndex(o->ptr,0); unsigned char *p = ziplistIndex(o->ptr,0);
unsigned char *vstr; unsigned char *vstr;
unsigned int vlen; unsigned int vlen;
...@@ -579,7 +579,7 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) { ...@@ -579,7 +579,7 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) {
char buf[REDIS_LONGSTR_SIZE]; char buf[REDIS_LONGSTR_SIZE];
int len; int len;
redisAssert(kobj->encoding == REDIS_ENCODING_INT); redisAssert(kobj->encoding == OBJ_ENCODING_INT);
len = ll2string(buf,sizeof(buf),(long)kobj->ptr); len = ll2string(buf,sizeof(buf),(long)kobj->ptr);
if (!stringmatchlen(pat, patlen, buf, len, 0)) filter = 1; if (!stringmatchlen(pat, patlen, buf, len, 0)) filter = 1;
} }
...@@ -597,7 +597,7 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) { ...@@ -597,7 +597,7 @@ void scanGenericCommand(client *c, robj *o, unsigned long cursor) {
/* If this is a hash or a sorted set, we have a flat list of /* If this is a hash or a sorted set, we have a flat list of
* key-value elements, so if this element was filtered, remove the * key-value elements, so if this element was filtered, remove the
* value, or skip it if it was not filtered: we only match keys. */ * value, or skip it if it was not filtered: we only match keys. */
if (o && (o->type == REDIS_ZSET || o->type == REDIS_HASH)) { if (o && (o->type == OBJ_ZSET || o->type == OBJ_HASH)) {
node = nextnode; node = nextnode;
nextnode = listNextNode(node); nextnode = listNextNode(node);
if (filter) { if (filter) {
...@@ -650,11 +650,11 @@ void typeCommand(client *c) { ...@@ -650,11 +650,11 @@ void typeCommand(client *c) {
type = "none"; type = "none";
} else { } else {
switch(o->type) { switch(o->type) {
case REDIS_STRING: type = "string"; break; case OBJ_STRING: type = "string"; break;
case REDIS_LIST: type = "list"; break; case OBJ_LIST: type = "list"; break;
case REDIS_SET: type = "set"; break; case OBJ_SET: type = "set"; break;
case REDIS_ZSET: type = "zset"; break; case OBJ_ZSET: type = "zset"; break;
case REDIS_HASH: type = "hash"; break; case OBJ_HASH: type = "hash"; break;
default: type = "unknown"; break; default: type = "unknown"; break;
} }
} }
......
...@@ -150,9 +150,9 @@ void computeDatasetDigest(unsigned char *final) { ...@@ -150,9 +150,9 @@ void computeDatasetDigest(unsigned char *final) {
expiretime = getExpire(db,keyobj); expiretime = getExpire(db,keyobj);
/* Save the key and associated value */ /* Save the key and associated value */
if (o->type == REDIS_STRING) { if (o->type == OBJ_STRING) {
mixObjectDigest(digest,o); mixObjectDigest(digest,o);
} else if (o->type == REDIS_LIST) { } else if (o->type == OBJ_LIST) {
listTypeIterator *li = listTypeInitIterator(o,0,REDIS_TAIL); listTypeIterator *li = listTypeInitIterator(o,0,REDIS_TAIL);
listTypeEntry entry; listTypeEntry entry;
while(listTypeNext(li,&entry)) { while(listTypeNext(li,&entry)) {
...@@ -161,7 +161,7 @@ void computeDatasetDigest(unsigned char *final) { ...@@ -161,7 +161,7 @@ void computeDatasetDigest(unsigned char *final) {
decrRefCount(eleobj); decrRefCount(eleobj);
} }
listTypeReleaseIterator(li); listTypeReleaseIterator(li);
} else if (o->type == REDIS_SET) { } else if (o->type == OBJ_SET) {
setTypeIterator *si = setTypeInitIterator(o); setTypeIterator *si = setTypeInitIterator(o);
robj *ele; robj *ele;
while((ele = setTypeNextObject(si)) != NULL) { while((ele = setTypeNextObject(si)) != NULL) {
...@@ -169,10 +169,10 @@ void computeDatasetDigest(unsigned char *final) { ...@@ -169,10 +169,10 @@ void computeDatasetDigest(unsigned char *final) {
decrRefCount(ele); decrRefCount(ele);
} }
setTypeReleaseIterator(si); setTypeReleaseIterator(si);
} else if (o->type == REDIS_ZSET) { } else if (o->type == OBJ_ZSET) {
unsigned char eledigest[20]; unsigned char eledigest[20];
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *zl = o->ptr; unsigned char *zl = o->ptr;
unsigned char *eptr, *sptr; unsigned char *eptr, *sptr;
unsigned char *vstr; unsigned char *vstr;
...@@ -202,7 +202,7 @@ void computeDatasetDigest(unsigned char *final) { ...@@ -202,7 +202,7 @@ void computeDatasetDigest(unsigned char *final) {
xorDigest(digest,eledigest,20); xorDigest(digest,eledigest,20);
zzlNext(zl,&eptr,&sptr); zzlNext(zl,&eptr,&sptr);
} }
} else if (o->encoding == REDIS_ENCODING_SKIPLIST) { } else if (o->encoding == OBJ_ENCODING_SKIPLIST) {
zset *zs = o->ptr; zset *zs = o->ptr;
dictIterator *di = dictGetIterator(zs->dict); dictIterator *di = dictGetIterator(zs->dict);
dictEntry *de; dictEntry *de;
...@@ -221,7 +221,7 @@ void computeDatasetDigest(unsigned char *final) { ...@@ -221,7 +221,7 @@ void computeDatasetDigest(unsigned char *final) {
} else { } else {
redisPanic("Unknown sorted set encoding"); redisPanic("Unknown sorted set encoding");
} }
} else if (o->type == REDIS_HASH) { } else if (o->type == OBJ_HASH) {
hashTypeIterator *hi; hashTypeIterator *hi;
robj *obj; robj *obj;
...@@ -230,10 +230,10 @@ void computeDatasetDigest(unsigned char *final) { ...@@ -230,10 +230,10 @@ void computeDatasetDigest(unsigned char *final) {
unsigned char eledigest[20]; unsigned char eledigest[20];
memset(eledigest,0,20); memset(eledigest,0,20);
obj = hashTypeCurrentObject(hi,REDIS_HASH_KEY); obj = hashTypeCurrentObject(hi,OBJ_HASH_KEY);
mixObjectDigest(eledigest,obj); mixObjectDigest(eledigest,obj);
decrRefCount(obj); decrRefCount(obj);
obj = hashTypeCurrentObject(hi,REDIS_HASH_VALUE); obj = hashTypeCurrentObject(hi,OBJ_HASH_VALUE);
mixObjectDigest(eledigest,obj); mixObjectDigest(eledigest,obj);
decrRefCount(obj); decrRefCount(obj);
xorDigest(digest,eledigest,20); xorDigest(digest,eledigest,20);
...@@ -302,7 +302,7 @@ void debugCommand(client *c) { ...@@ -302,7 +302,7 @@ void debugCommand(client *c) {
strenc = strEncoding(val->encoding); strenc = strEncoding(val->encoding);
char extra[128] = {0}; char extra[128] = {0};
if (val->encoding == REDIS_ENCODING_QUICKLIST) { if (val->encoding == OBJ_ENCODING_QUICKLIST) {
char *nextra = extra; char *nextra = extra;
int remaining = sizeof(extra); int remaining = sizeof(extra);
quicklist *ql = val->ptr; quicklist *ql = val->ptr;
...@@ -353,7 +353,7 @@ void debugCommand(client *c) { ...@@ -353,7 +353,7 @@ void debugCommand(client *c) {
val = dictGetVal(de); val = dictGetVal(de);
key = dictGetKey(de); key = dictGetKey(de);
if (val->type != REDIS_STRING || !sdsEncodedObject(val)) { if (val->type != OBJ_STRING || !sdsEncodedObject(val)) {
addReplyError(c,"Not an sds encoded string."); addReplyError(c,"Not an sds encoded string.");
} else { } else {
addReplyStatusFormat(c, addReplyStatusFormat(c,
...@@ -495,7 +495,7 @@ void _redisAssertPrintClientInfo(client *c) { ...@@ -495,7 +495,7 @@ void _redisAssertPrintClientInfo(client *c) {
char buf[128]; char buf[128];
char *arg; char *arg;
if (c->argv[j]->type == REDIS_STRING && sdsEncodedObject(c->argv[j])) { if (c->argv[j]->type == OBJ_STRING && sdsEncodedObject(c->argv[j])) {
arg = (char*) c->argv[j]->ptr; arg = (char*) c->argv[j]->ptr;
} else { } else {
snprintf(buf,sizeof(buf),"Object type: %d, encoding: %d", snprintf(buf,sizeof(buf),"Object type: %d, encoding: %d",
...@@ -511,22 +511,22 @@ void serverLogObjectDebugInfo(robj *o) { ...@@ -511,22 +511,22 @@ void serverLogObjectDebugInfo(robj *o) {
serverLog(REDIS_WARNING,"Object type: %d", o->type); serverLog(REDIS_WARNING,"Object type: %d", o->type);
serverLog(REDIS_WARNING,"Object encoding: %d", o->encoding); serverLog(REDIS_WARNING,"Object encoding: %d", o->encoding);
serverLog(REDIS_WARNING,"Object refcount: %d", o->refcount); serverLog(REDIS_WARNING,"Object refcount: %d", o->refcount);
if (o->type == REDIS_STRING && sdsEncodedObject(o)) { if (o->type == OBJ_STRING && sdsEncodedObject(o)) {
serverLog(REDIS_WARNING,"Object raw string len: %zu", sdslen(o->ptr)); serverLog(REDIS_WARNING,"Object raw string len: %zu", sdslen(o->ptr));
if (sdslen(o->ptr) < 4096) { if (sdslen(o->ptr) < 4096) {
sds repr = sdscatrepr(sdsempty(),o->ptr,sdslen(o->ptr)); sds repr = sdscatrepr(sdsempty(),o->ptr,sdslen(o->ptr));
serverLog(REDIS_WARNING,"Object raw string content: %s", repr); serverLog(REDIS_WARNING,"Object raw string content: %s", repr);
sdsfree(repr); sdsfree(repr);
} }
} else if (o->type == REDIS_LIST) { } else if (o->type == OBJ_LIST) {
serverLog(REDIS_WARNING,"List length: %d", (int) listTypeLength(o)); serverLog(REDIS_WARNING,"List length: %d", (int) listTypeLength(o));
} else if (o->type == REDIS_SET) { } else if (o->type == OBJ_SET) {
serverLog(REDIS_WARNING,"Set size: %d", (int) setTypeSize(o)); serverLog(REDIS_WARNING,"Set size: %d", (int) setTypeSize(o));
} else if (o->type == REDIS_HASH) { } else if (o->type == OBJ_HASH) {
serverLog(REDIS_WARNING,"Hash size: %d", (int) hashTypeLength(o)); serverLog(REDIS_WARNING,"Hash size: %d", (int) hashTypeLength(o));
} else if (o->type == REDIS_ZSET) { } else if (o->type == OBJ_ZSET) {
serverLog(REDIS_WARNING,"Sorted set size: %d", (int) zsetLength(o)); serverLog(REDIS_WARNING,"Sorted set size: %d", (int) zsetLength(o));
if (o->encoding == REDIS_ENCODING_SKIPLIST) if (o->encoding == OBJ_ENCODING_SKIPLIST)
serverLog(REDIS_WARNING,"Skiplist level: %d", (int) ((zset*)o->ptr)->zsl->level); serverLog(REDIS_WARNING,"Skiplist level: %d", (int) ((zset*)o->ptr)->zsl->level);
} }
} }
......
...@@ -221,7 +221,7 @@ int geoGetPointsInRange(robj *zobj, double min, double max, double lon, double l ...@@ -221,7 +221,7 @@ int geoGetPointsInRange(robj *zobj, double min, double max, double lon, double l
size_t origincount = ga->used; size_t origincount = ga->used;
sds member; sds member;
if (zobj->encoding == REDIS_ENCODING_ZIPLIST) { if (zobj->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *zl = zobj->ptr; unsigned char *zl = zobj->ptr;
unsigned char *eptr, *sptr; unsigned char *eptr, *sptr;
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
...@@ -250,7 +250,7 @@ int geoGetPointsInRange(robj *zobj, double min, double max, double lon, double l ...@@ -250,7 +250,7 @@ int geoGetPointsInRange(robj *zobj, double min, double max, double lon, double l
== REDIS_ERR) sdsfree(member); == REDIS_ERR) sdsfree(member);
zzlNext(zl, &eptr, &sptr); zzlNext(zl, &eptr, &sptr);
} }
} else if (zobj->encoding == REDIS_ENCODING_SKIPLIST) { } else if (zobj->encoding == OBJ_ENCODING_SKIPLIST) {
zset *zs = zobj->ptr; zset *zs = zobj->ptr;
zskiplist *zsl = zs->zsl; zskiplist *zsl = zs->zsl;
zskiplistNode *ln; zskiplistNode *ln;
...@@ -266,7 +266,7 @@ int geoGetPointsInRange(robj *zobj, double min, double max, double lon, double l ...@@ -266,7 +266,7 @@ int geoGetPointsInRange(robj *zobj, double min, double max, double lon, double l
if (!zslValueLteMax(ln->score, &range)) if (!zslValueLteMax(ln->score, &range))
break; break;
member = (o->encoding == REDIS_ENCODING_INT) ? member = (o->encoding == OBJ_ENCODING_INT) ?
sdsfromlonglong((long)o->ptr) : sdsfromlonglong((long)o->ptr) :
sdsdup(o->ptr); sdsdup(o->ptr);
if (geoAppendIfWithinRadius(ga,lon,lat,radius,ln->score,member) if (geoAppendIfWithinRadius(ga,lon,lat,radius,ln->score,member)
...@@ -397,7 +397,7 @@ void geoaddCommand(client *c) { ...@@ -397,7 +397,7 @@ void geoaddCommand(client *c) {
GeoHashBits hash; GeoHashBits hash;
geohashEncodeWGS84(xy[0], xy[1], GEO_STEP_MAX, &hash); geohashEncodeWGS84(xy[0], xy[1], GEO_STEP_MAX, &hash);
GeoHashFix52Bits bits = geohashAlign52Bits(hash); GeoHashFix52Bits bits = geohashAlign52Bits(hash);
robj *score = createObject(REDIS_STRING, sdsfromlonglong(bits)); robj *score = createObject(OBJ_STRING, sdsfromlonglong(bits));
robj *val = c->argv[2 + i * 3 + 2]; robj *val = c->argv[2 + i * 3 + 2];
argv[2+i*2] = score; argv[2+i*2] = score;
argv[3+i*2] = val; argv[3+i*2] = val;
...@@ -425,7 +425,7 @@ void georadiusGeneric(client *c, int type) { ...@@ -425,7 +425,7 @@ void georadiusGeneric(client *c, int type) {
/* Look up the requested zset */ /* Look up the requested zset */
robj *zobj = NULL; robj *zobj = NULL;
if ((zobj = lookupKeyReadOrReply(c, key, shared.emptymultibulk)) == NULL || if ((zobj = lookupKeyReadOrReply(c, key, shared.emptymultibulk)) == NULL ||
checkType(c, zobj, REDIS_ZSET)) { checkType(c, zobj, OBJ_ZSET)) {
return; return;
} }
...@@ -589,7 +589,7 @@ void geohashCommand(client *c) { ...@@ -589,7 +589,7 @@ void geohashCommand(client *c) {
/* Look up the requested zset */ /* Look up the requested zset */
robj *zobj = NULL; robj *zobj = NULL;
if ((zobj = lookupKeyReadOrReply(c, c->argv[1], shared.emptymultibulk)) if ((zobj = lookupKeyReadOrReply(c, c->argv[1], shared.emptymultibulk))
== NULL || checkType(c, zobj, REDIS_ZSET)) return; == NULL || checkType(c, zobj, OBJ_ZSET)) return;
/* Geohash elements one after the other, using a null bulk reply for /* Geohash elements one after the other, using a null bulk reply for
* missing elements. */ * missing elements. */
...@@ -643,7 +643,7 @@ void geoposCommand(client *c) { ...@@ -643,7 +643,7 @@ void geoposCommand(client *c) {
/* Look up the requested zset */ /* Look up the requested zset */
robj *zobj = NULL; robj *zobj = NULL;
if ((zobj = lookupKeyReadOrReply(c, c->argv[1], shared.emptymultibulk)) if ((zobj = lookupKeyReadOrReply(c, c->argv[1], shared.emptymultibulk))
== NULL || checkType(c, zobj, REDIS_ZSET)) return; == NULL || checkType(c, zobj, OBJ_ZSET)) return;
/* Report elements one after the other, using a null bulk reply for /* Report elements one after the other, using a null bulk reply for
* missing elements. */ * missing elements. */
...@@ -686,7 +686,7 @@ void geodistCommand(client *c) { ...@@ -686,7 +686,7 @@ void geodistCommand(client *c) {
/* Look up the requested zset */ /* Look up the requested zset */
robj *zobj = NULL; robj *zobj = NULL;
if ((zobj = lookupKeyReadOrReply(c, c->argv[1], shared.emptybulk)) if ((zobj = lookupKeyReadOrReply(c, c->argv[1], shared.emptybulk))
== NULL || checkType(c, zobj, REDIS_ZSET)) return; == NULL || checkType(c, zobj, OBJ_ZSET)) return;
/* Get the scores. We need both otherwise NULL is returned. */ /* Get the scores. We need both otherwise NULL is returned. */
double score1, score2, xyxy[4]; double score1, score2, xyxy[4];
......
...@@ -1111,7 +1111,7 @@ robj *createHLLObject(void) { ...@@ -1111,7 +1111,7 @@ robj *createHLLObject(void) {
redisAssert((p-(uint8_t*)s) == sparselen); redisAssert((p-(uint8_t*)s) == sparselen);
/* Create the actual object. */ /* Create the actual object. */
o = createObject(REDIS_STRING,s); o = createObject(OBJ_STRING,s);
hdr = o->ptr; hdr = o->ptr;
memcpy(hdr->magic,"HYLL",4); memcpy(hdr->magic,"HYLL",4);
hdr->encoding = HLL_SPARSE; hdr->encoding = HLL_SPARSE;
...@@ -1125,7 +1125,7 @@ int isHLLObjectOrReply(client *c, robj *o) { ...@@ -1125,7 +1125,7 @@ int isHLLObjectOrReply(client *c, robj *o) {
struct hllhdr *hdr; struct hllhdr *hdr;
/* Key exists, check type */ /* Key exists, check type */
if (checkType(c,o,REDIS_STRING)) if (checkType(c,o,OBJ_STRING))
return REDIS_ERR; /* Error already sent. */ return REDIS_ERR; /* Error already sent. */
if (stringObjectLen(o) < sizeof(*hdr)) goto invalid; if (stringObjectLen(o) < sizeof(*hdr)) goto invalid;
......
...@@ -44,10 +44,10 @@ size_t sdsZmallocSize(sds s) { ...@@ -44,10 +44,10 @@ size_t sdsZmallocSize(sds s) {
/* Return the amount of memory used by the sds string at object->ptr /* Return the amount of memory used by the sds string at object->ptr
* for a string object. */ * for a string object. */
size_t getStringObjectSdsUsedMemory(robj *o) { size_t getStringObjectSdsUsedMemory(robj *o) {
redisAssertWithInfo(NULL,o,o->type == REDIS_STRING); redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
switch(o->encoding) { switch(o->encoding) {
case REDIS_ENCODING_RAW: return sdsZmallocSize(o->ptr); case OBJ_ENCODING_RAW: return sdsZmallocSize(o->ptr);
case REDIS_ENCODING_EMBSTR: return zmalloc_size(o)-sizeof(robj); case OBJ_ENCODING_EMBSTR: return zmalloc_size(o)-sizeof(robj);
default: return 0; /* Just integer encoding for now. */ default: return 0; /* Just integer encoding for now. */
} }
} }
...@@ -232,7 +232,7 @@ void _addReplyObjectToList(client *c, robj *o) { ...@@ -232,7 +232,7 @@ void _addReplyObjectToList(client *c, robj *o) {
/* Append to this object when possible. */ /* Append to this object when possible. */
if (tail->ptr != NULL && if (tail->ptr != NULL &&
tail->encoding == REDIS_ENCODING_RAW && tail->encoding == OBJ_ENCODING_RAW &&
sdslen(tail->ptr)+sdslen(o->ptr) <= REDIS_REPLY_CHUNK_BYTES) sdslen(tail->ptr)+sdslen(o->ptr) <= REDIS_REPLY_CHUNK_BYTES)
{ {
c->reply_bytes -= sdsZmallocSize(tail->ptr); c->reply_bytes -= sdsZmallocSize(tail->ptr);
...@@ -259,13 +259,13 @@ void _addReplySdsToList(client *c, sds s) { ...@@ -259,13 +259,13 @@ void _addReplySdsToList(client *c, sds s) {
} }
if (listLength(c->reply) == 0) { if (listLength(c->reply) == 0) {
listAddNodeTail(c->reply,createObject(REDIS_STRING,s)); listAddNodeTail(c->reply,createObject(OBJ_STRING,s));
c->reply_bytes += sdsZmallocSize(s); c->reply_bytes += sdsZmallocSize(s);
} else { } else {
tail = listNodeValue(listLast(c->reply)); tail = listNodeValue(listLast(c->reply));
/* Append to this object when possible. */ /* Append to this object when possible. */
if (tail->ptr != NULL && tail->encoding == REDIS_ENCODING_RAW && if (tail->ptr != NULL && tail->encoding == OBJ_ENCODING_RAW &&
sdslen(tail->ptr)+sdslen(s) <= REDIS_REPLY_CHUNK_BYTES) sdslen(tail->ptr)+sdslen(s) <= REDIS_REPLY_CHUNK_BYTES)
{ {
c->reply_bytes -= sdsZmallocSize(tail->ptr); c->reply_bytes -= sdsZmallocSize(tail->ptr);
...@@ -274,7 +274,7 @@ void _addReplySdsToList(client *c, sds s) { ...@@ -274,7 +274,7 @@ void _addReplySdsToList(client *c, sds s) {
c->reply_bytes += sdsZmallocSize(tail->ptr); c->reply_bytes += sdsZmallocSize(tail->ptr);
sdsfree(s); sdsfree(s);
} else { } else {
listAddNodeTail(c->reply,createObject(REDIS_STRING,s)); listAddNodeTail(c->reply,createObject(OBJ_STRING,s));
c->reply_bytes += sdsZmallocSize(s); c->reply_bytes += sdsZmallocSize(s);
} }
} }
...@@ -295,7 +295,7 @@ void _addReplyStringToList(client *c, const char *s, size_t len) { ...@@ -295,7 +295,7 @@ void _addReplyStringToList(client *c, const char *s, size_t len) {
tail = listNodeValue(listLast(c->reply)); tail = listNodeValue(listLast(c->reply));
/* Append to this object when possible. */ /* Append to this object when possible. */
if (tail->ptr != NULL && tail->encoding == REDIS_ENCODING_RAW && if (tail->ptr != NULL && tail->encoding == OBJ_ENCODING_RAW &&
sdslen(tail->ptr)+len <= REDIS_REPLY_CHUNK_BYTES) sdslen(tail->ptr)+len <= REDIS_REPLY_CHUNK_BYTES)
{ {
c->reply_bytes -= sdsZmallocSize(tail->ptr); c->reply_bytes -= sdsZmallocSize(tail->ptr);
...@@ -330,7 +330,7 @@ void addReply(client *c, robj *obj) { ...@@ -330,7 +330,7 @@ void addReply(client *c, robj *obj) {
if (sdsEncodedObject(obj)) { if (sdsEncodedObject(obj)) {
if (_addReplyToBuffer(c,obj->ptr,sdslen(obj->ptr)) != REDIS_OK) if (_addReplyToBuffer(c,obj->ptr,sdslen(obj->ptr)) != REDIS_OK)
_addReplyObjectToList(c,obj); _addReplyObjectToList(c,obj);
} else if (obj->encoding == REDIS_ENCODING_INT) { } else if (obj->encoding == OBJ_ENCODING_INT) {
/* Optimization: if there is room in the static buffer for 32 bytes /* Optimization: if there is room in the static buffer for 32 bytes
* (more than the max chars a 64 bit integer can take as string) we * (more than the max chars a 64 bit integer can take as string) we
* avoid decoding the object and go for the lower level approach. */ * avoid decoding the object and go for the lower level approach. */
...@@ -425,7 +425,7 @@ void *addDeferredMultiBulkLength(client *c) { ...@@ -425,7 +425,7 @@ void *addDeferredMultiBulkLength(client *c) {
* ready to be sent, since we are sure that before returning to the * ready to be sent, since we are sure that before returning to the
* event loop setDeferredMultiBulkLength() will be called. */ * event loop setDeferredMultiBulkLength() will be called. */
if (prepareClientToWrite(c) != REDIS_OK) return NULL; if (prepareClientToWrite(c) != REDIS_OK) return NULL;
listAddNodeTail(c->reply,createObject(REDIS_STRING,NULL)); listAddNodeTail(c->reply,createObject(OBJ_STRING,NULL));
return listLast(c->reply); return listLast(c->reply);
} }
...@@ -439,7 +439,7 @@ void setDeferredMultiBulkLength(client *c, void *node, long length) { ...@@ -439,7 +439,7 @@ void setDeferredMultiBulkLength(client *c, void *node, long length) {
len = listNodeValue(ln); len = listNodeValue(ln);
len->ptr = sdscatprintf(sdsempty(),"*%ld\r\n",length); len->ptr = sdscatprintf(sdsempty(),"*%ld\r\n",length);
len->encoding = REDIS_ENCODING_RAW; /* in case it was an EMBSTR. */ len->encoding = OBJ_ENCODING_RAW; /* in case it was an EMBSTR. */
c->reply_bytes += sdsZmallocSize(len->ptr); c->reply_bytes += sdsZmallocSize(len->ptr);
if (ln->next != NULL) { if (ln->next != NULL) {
next = listNodeValue(ln->next); next = listNodeValue(ln->next);
...@@ -970,7 +970,7 @@ int processInlineBuffer(client *c) { ...@@ -970,7 +970,7 @@ int processInlineBuffer(client *c) {
/* Create redis objects for all arguments. */ /* Create redis objects for all arguments. */
for (c->argc = 0, j = 0; j < argc; j++) { for (c->argc = 0, j = 0; j < argc; j++) {
if (sdslen(argv[j])) { if (sdslen(argv[j])) {
c->argv[c->argc] = createObject(REDIS_STRING,argv[j]); c->argv[c->argc] = createObject(OBJ_STRING,argv[j]);
c->argc++; c->argc++;
} else { } else {
sdsfree(argv[j]); sdsfree(argv[j]);
...@@ -1104,7 +1104,7 @@ int processMultibulkBuffer(client *c) { ...@@ -1104,7 +1104,7 @@ int processMultibulkBuffer(client *c) {
c->bulklen >= REDIS_MBULK_BIG_ARG && c->bulklen >= REDIS_MBULK_BIG_ARG &&
(signed) sdslen(c->querybuf) == c->bulklen+2) (signed) sdslen(c->querybuf) == c->bulklen+2)
{ {
c->argv[c->argc++] = createObject(REDIS_STRING,c->querybuf); c->argv[c->argc++] = createObject(OBJ_STRING,c->querybuf);
sdsIncrLen(c->querybuf,-2); /* remove CRLF */ sdsIncrLen(c->querybuf,-2); /* remove CRLF */
c->querybuf = sdsempty(); c->querybuf = sdsempty();
/* Assume that if we saw a fat argument we'll see another one /* Assume that if we saw a fat argument we'll see another one
......
...@@ -110,7 +110,7 @@ void notifyKeyspaceEvent(int type, char *event, robj *key, int dbid) { ...@@ -110,7 +110,7 @@ void notifyKeyspaceEvent(int type, char *event, robj *key, int dbid) {
chan = sdscatlen(chan, buf, len); chan = sdscatlen(chan, buf, len);
chan = sdscatlen(chan, "__:", 3); chan = sdscatlen(chan, "__:", 3);
chan = sdscatsds(chan, key->ptr); chan = sdscatsds(chan, key->ptr);
chanobj = createObject(REDIS_STRING, chan); chanobj = createObject(OBJ_STRING, chan);
pubsubPublishMessage(chanobj, eventobj); pubsubPublishMessage(chanobj, eventobj);
decrRefCount(chanobj); decrRefCount(chanobj);
} }
...@@ -122,7 +122,7 @@ void notifyKeyspaceEvent(int type, char *event, robj *key, int dbid) { ...@@ -122,7 +122,7 @@ void notifyKeyspaceEvent(int type, char *event, robj *key, int dbid) {
chan = sdscatlen(chan, buf, len); chan = sdscatlen(chan, buf, len);
chan = sdscatlen(chan, "__:", 3); chan = sdscatlen(chan, "__:", 3);
chan = sdscatsds(chan, eventobj->ptr); chan = sdscatsds(chan, eventobj->ptr);
chanobj = createObject(REDIS_STRING, chan); chanobj = createObject(OBJ_STRING, chan);
pubsubPublishMessage(chanobj, key); pubsubPublishMessage(chanobj, key);
decrRefCount(chanobj); decrRefCount(chanobj);
} }
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
robj *createObject(int type, void *ptr) { robj *createObject(int type, void *ptr) {
robj *o = zmalloc(sizeof(*o)); robj *o = zmalloc(sizeof(*o));
o->type = type; o->type = type;
o->encoding = REDIS_ENCODING_RAW; o->encoding = OBJ_ENCODING_RAW;
o->ptr = ptr; o->ptr = ptr;
o->refcount = 1; o->refcount = 1;
...@@ -48,21 +48,21 @@ robj *createObject(int type, void *ptr) { ...@@ -48,21 +48,21 @@ robj *createObject(int type, void *ptr) {
return o; 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. */ * string object where o->ptr points to a proper sds string. */
robj *createRawStringObject(const char *ptr, size_t len) { 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 * an object where the sds string is actually an unmodifiable string
* allocated in the same chunk as the object itself. */ * allocated in the same chunk as the object itself. */
robj *createEmbeddedStringObject(const char *ptr, size_t len) { robj *createEmbeddedStringObject(const char *ptr, size_t len) {
robj *o = zmalloc(sizeof(robj)+sizeof(struct sdshdr8)+len+1); robj *o = zmalloc(sizeof(robj)+sizeof(struct sdshdr8)+len+1);
struct sdshdr8 *sh = (void*)(o+1); struct sdshdr8 *sh = (void*)(o+1);
o->type = REDIS_STRING; o->type = OBJ_STRING;
o->encoding = REDIS_ENCODING_EMBSTR; o->encoding = OBJ_ENCODING_EMBSTR;
o->ptr = sh+1; o->ptr = sh+1;
o->refcount = 1; o->refcount = 1;
o->lru = LRU_CLOCK(); o->lru = LRU_CLOCK();
...@@ -85,9 +85,9 @@ robj *createEmbeddedStringObject(const char *ptr, size_t len) { ...@@ -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 * 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. */ * 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) { 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); return createEmbeddedStringObject(ptr,len);
else else
return createRawStringObject(ptr,len); return createRawStringObject(ptr,len);
...@@ -100,11 +100,11 @@ robj *createStringObjectFromLongLong(long long value) { ...@@ -100,11 +100,11 @@ robj *createStringObjectFromLongLong(long long value) {
o = shared.integers[value]; o = shared.integers[value];
} else { } else {
if (value >= LONG_MIN && value <= LONG_MAX) { if (value >= LONG_MIN && value <= LONG_MAX) {
o = createObject(REDIS_STRING, NULL); o = createObject(OBJ_STRING, NULL);
o->encoding = REDIS_ENCODING_INT; o->encoding = OBJ_ENCODING_INT;
o->ptr = (void*)((long)value); o->ptr = (void*)((long)value);
} else { } else {
o = createObject(REDIS_STRING,sdsfromlonglong(value)); o = createObject(OBJ_STRING,sdsfromlonglong(value));
} }
} }
return o; return o;
...@@ -163,16 +163,16 @@ robj *createStringObjectFromLongDouble(long double value, int humanfriendly) { ...@@ -163,16 +163,16 @@ robj *createStringObjectFromLongDouble(long double value, int humanfriendly) {
robj *dupStringObject(robj *o) { robj *dupStringObject(robj *o) {
robj *d; robj *d;
redisAssert(o->type == REDIS_STRING); redisAssert(o->type == OBJ_STRING);
switch(o->encoding) { switch(o->encoding) {
case REDIS_ENCODING_RAW: case OBJ_ENCODING_RAW:
return createRawStringObject(o->ptr,sdslen(o->ptr)); return createRawStringObject(o->ptr,sdslen(o->ptr));
case REDIS_ENCODING_EMBSTR: case OBJ_ENCODING_EMBSTR:
return createEmbeddedStringObject(o->ptr,sdslen(o->ptr)); return createEmbeddedStringObject(o->ptr,sdslen(o->ptr));
case REDIS_ENCODING_INT: case OBJ_ENCODING_INT:
d = createObject(REDIS_STRING, NULL); d = createObject(OBJ_STRING, NULL);
d->encoding = REDIS_ENCODING_INT; d->encoding = OBJ_ENCODING_INT;
d->ptr = o->ptr; d->ptr = o->ptr;
return d; return d;
default: default:
...@@ -183,36 +183,36 @@ robj *dupStringObject(robj *o) { ...@@ -183,36 +183,36 @@ robj *dupStringObject(robj *o) {
robj *createQuicklistObject(void) { robj *createQuicklistObject(void) {
quicklist *l = quicklistCreate(); quicklist *l = quicklistCreate();
robj *o = createObject(REDIS_LIST,l); robj *o = createObject(OBJ_LIST,l);
o->encoding = REDIS_ENCODING_QUICKLIST; o->encoding = OBJ_ENCODING_QUICKLIST;
return o; return o;
} }
robj *createZiplistObject(void) { robj *createZiplistObject(void) {
unsigned char *zl = ziplistNew(); unsigned char *zl = ziplistNew();
robj *o = createObject(REDIS_LIST,zl); robj *o = createObject(OBJ_LIST,zl);
o->encoding = REDIS_ENCODING_ZIPLIST; o->encoding = OBJ_ENCODING_ZIPLIST;
return o; return o;
} }
robj *createSetObject(void) { robj *createSetObject(void) {
dict *d = dictCreate(&setDictType,NULL); dict *d = dictCreate(&setDictType,NULL);
robj *o = createObject(REDIS_SET,d); robj *o = createObject(OBJ_SET,d);
o->encoding = REDIS_ENCODING_HT; o->encoding = OBJ_ENCODING_HT;
return o; return o;
} }
robj *createIntsetObject(void) { robj *createIntsetObject(void) {
intset *is = intsetNew(); intset *is = intsetNew();
robj *o = createObject(REDIS_SET,is); robj *o = createObject(OBJ_SET,is);
o->encoding = REDIS_ENCODING_INTSET; o->encoding = OBJ_ENCODING_INTSET;
return o; return o;
} }
robj *createHashObject(void) { robj *createHashObject(void) {
unsigned char *zl = ziplistNew(); unsigned char *zl = ziplistNew();
robj *o = createObject(REDIS_HASH, zl); robj *o = createObject(OBJ_HASH, zl);
o->encoding = REDIS_ENCODING_ZIPLIST; o->encoding = OBJ_ENCODING_ZIPLIST;
return o; return o;
} }
...@@ -222,27 +222,27 @@ robj *createZsetObject(void) { ...@@ -222,27 +222,27 @@ robj *createZsetObject(void) {
zs->dict = dictCreate(&zsetDictType,NULL); zs->dict = dictCreate(&zsetDictType,NULL);
zs->zsl = zslCreate(); zs->zsl = zslCreate();
o = createObject(REDIS_ZSET,zs); o = createObject(OBJ_ZSET,zs);
o->encoding = REDIS_ENCODING_SKIPLIST; o->encoding = OBJ_ENCODING_SKIPLIST;
return o; return o;
} }
robj *createZsetZiplistObject(void) { robj *createZsetZiplistObject(void) {
unsigned char *zl = ziplistNew(); unsigned char *zl = ziplistNew();
robj *o = createObject(REDIS_ZSET,zl); robj *o = createObject(OBJ_ZSET,zl);
o->encoding = REDIS_ENCODING_ZIPLIST; o->encoding = OBJ_ENCODING_ZIPLIST;
return o; return o;
} }
void freeStringObject(robj *o) { void freeStringObject(robj *o) {
if (o->encoding == REDIS_ENCODING_RAW) { if (o->encoding == OBJ_ENCODING_RAW) {
sdsfree(o->ptr); sdsfree(o->ptr);
} }
} }
void freeListObject(robj *o) { void freeListObject(robj *o) {
switch (o->encoding) { switch (o->encoding) {
case REDIS_ENCODING_QUICKLIST: case OBJ_ENCODING_QUICKLIST:
quicklistRelease(o->ptr); quicklistRelease(o->ptr);
break; break;
default: default:
...@@ -252,10 +252,10 @@ void freeListObject(robj *o) { ...@@ -252,10 +252,10 @@ void freeListObject(robj *o) {
void freeSetObject(robj *o) { void freeSetObject(robj *o) {
switch (o->encoding) { switch (o->encoding) {
case REDIS_ENCODING_HT: case OBJ_ENCODING_HT:
dictRelease((dict*) o->ptr); dictRelease((dict*) o->ptr);
break; break;
case REDIS_ENCODING_INTSET: case OBJ_ENCODING_INTSET:
zfree(o->ptr); zfree(o->ptr);
break; break;
default: default:
...@@ -266,13 +266,13 @@ void freeSetObject(robj *o) { ...@@ -266,13 +266,13 @@ void freeSetObject(robj *o) {
void freeZsetObject(robj *o) { void freeZsetObject(robj *o) {
zset *zs; zset *zs;
switch (o->encoding) { switch (o->encoding) {
case REDIS_ENCODING_SKIPLIST: case OBJ_ENCODING_SKIPLIST:
zs = o->ptr; zs = o->ptr;
dictRelease(zs->dict); dictRelease(zs->dict);
zslFree(zs->zsl); zslFree(zs->zsl);
zfree(zs); zfree(zs);
break; break;
case REDIS_ENCODING_ZIPLIST: case OBJ_ENCODING_ZIPLIST:
zfree(o->ptr); zfree(o->ptr);
break; break;
default: default:
...@@ -282,10 +282,10 @@ void freeZsetObject(robj *o) { ...@@ -282,10 +282,10 @@ void freeZsetObject(robj *o) {
void freeHashObject(robj *o) { void freeHashObject(robj *o) {
switch (o->encoding) { switch (o->encoding) {
case REDIS_ENCODING_HT: case OBJ_ENCODING_HT:
dictRelease((dict*) o->ptr); dictRelease((dict*) o->ptr);
break; break;
case REDIS_ENCODING_ZIPLIST: case OBJ_ENCODING_ZIPLIST:
zfree(o->ptr); zfree(o->ptr);
break; break;
default: default:
...@@ -302,11 +302,11 @@ void decrRefCount(robj *o) { ...@@ -302,11 +302,11 @@ void decrRefCount(robj *o) {
if (o->refcount <= 0) redisPanic("decrRefCount against refcount <= 0"); if (o->refcount <= 0) redisPanic("decrRefCount against refcount <= 0");
if (o->refcount == 1) { if (o->refcount == 1) {
switch(o->type) { switch(o->type) {
case REDIS_STRING: freeStringObject(o); break; case OBJ_STRING: freeStringObject(o); break;
case REDIS_LIST: freeListObject(o); break; case OBJ_LIST: freeListObject(o); break;
case REDIS_SET: freeSetObject(o); break; case OBJ_SET: freeSetObject(o); break;
case REDIS_ZSET: freeZsetObject(o); break; case OBJ_ZSET: freeZsetObject(o); break;
case REDIS_HASH: freeHashObject(o); break; case OBJ_HASH: freeHashObject(o); break;
default: redisPanic("Unknown object type"); break; default: redisPanic("Unknown object type"); break;
} }
zfree(o); zfree(o);
...@@ -348,8 +348,8 @@ int checkType(client *c, robj *o, int type) { ...@@ -348,8 +348,8 @@ int checkType(client *c, robj *o, int type) {
} }
int isObjectRepresentableAsLongLong(robj *o, long long *llval) { int isObjectRepresentableAsLongLong(robj *o, long long *llval) {
redisAssertWithInfo(NULL,o,o->type == REDIS_STRING); redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (o->encoding == REDIS_ENCODING_INT) { if (o->encoding == OBJ_ENCODING_INT) {
if (llval) *llval = (long) o->ptr; if (llval) *llval = (long) o->ptr;
return REDIS_OK; return REDIS_OK;
} else { } else {
...@@ -367,7 +367,7 @@ robj *tryObjectEncoding(robj *o) { ...@@ -367,7 +367,7 @@ robj *tryObjectEncoding(robj *o) {
* in this function. Other types use encoded memory efficient * in this function. Other types use encoded memory efficient
* representations but are handled by the commands implementing * representations but are handled by the commands implementing
* the type. */ * 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 /* We try some specialized encoding only for objects that are
* RAW or EMBSTR encoded, in other words objects that are still * RAW or EMBSTR encoded, in other words objects that are still
...@@ -398,8 +398,8 @@ robj *tryObjectEncoding(robj *o) { ...@@ -398,8 +398,8 @@ robj *tryObjectEncoding(robj *o) {
incrRefCount(shared.integers[value]); incrRefCount(shared.integers[value]);
return shared.integers[value]; return shared.integers[value];
} else { } else {
if (o->encoding == REDIS_ENCODING_RAW) sdsfree(o->ptr); if (o->encoding == OBJ_ENCODING_RAW) sdsfree(o->ptr);
o->encoding = REDIS_ENCODING_INT; o->encoding = OBJ_ENCODING_INT;
o->ptr = (void*) value; o->ptr = (void*) value;
return o; return o;
} }
...@@ -409,10 +409,10 @@ robj *tryObjectEncoding(robj *o) { ...@@ -409,10 +409,10 @@ robj *tryObjectEncoding(robj *o) {
* try the EMBSTR encoding which is more efficient. * try the EMBSTR encoding which is more efficient.
* In this representation the object and the SDS string are allocated * In this representation the object and the SDS string are allocated
* in the same chunk of memory to save space and cache misses. */ * 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; robj *emb;
if (o->encoding == REDIS_ENCODING_EMBSTR) return o; if (o->encoding == OBJ_ENCODING_EMBSTR) return o;
emb = createEmbeddedStringObject(s,sdslen(s)); emb = createEmbeddedStringObject(s,sdslen(s));
decrRefCount(o); decrRefCount(o);
return emb; return emb;
...@@ -426,8 +426,8 @@ robj *tryObjectEncoding(robj *o) { ...@@ -426,8 +426,8 @@ robj *tryObjectEncoding(robj *o) {
* *
* We do that only for relatively large strings as this branch * We do that only for relatively large strings as this branch
* is only entered if the length of the string is greater than * is only entered if the length of the string is greater than
* REDIS_ENCODING_EMBSTR_SIZE_LIMIT. */ * OBJ_ENCODING_EMBSTR_SIZE_LIMIT. */
if (o->encoding == REDIS_ENCODING_RAW && if (o->encoding == OBJ_ENCODING_RAW &&
sdsavail(s) > len/10) sdsavail(s) > len/10)
{ {
o->ptr = sdsRemoveFreeSpace(o->ptr); o->ptr = sdsRemoveFreeSpace(o->ptr);
...@@ -446,7 +446,7 @@ robj *getDecodedObject(robj *o) { ...@@ -446,7 +446,7 @@ robj *getDecodedObject(robj *o) {
incrRefCount(o); incrRefCount(o);
return 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]; char buf[32];
ll2string(buf,32,(long)o->ptr); ll2string(buf,32,(long)o->ptr);
...@@ -469,7 +469,7 @@ robj *getDecodedObject(robj *o) { ...@@ -469,7 +469,7 @@ robj *getDecodedObject(robj *o) {
#define REDIS_COMPARE_COLL (1<<1) #define REDIS_COMPARE_COLL (1<<1)
int compareStringObjectsWithFlags(robj *a, robj *b, int flags) { 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; char bufa[128], bufb[128], *astr, *bstr;
size_t alen, blen, minlen; size_t alen, blen, minlen;
...@@ -515,8 +515,8 @@ int collateStringObjects(robj *a, robj *b) { ...@@ -515,8 +515,8 @@ int collateStringObjects(robj *a, robj *b) {
* this function is faster then checking for (compareStringObject(a,b) == 0) * this function is faster then checking for (compareStringObject(a,b) == 0)
* because it can perform some more optimization. */ * because it can perform some more optimization. */
int equalStringObjects(robj *a, robj *b) { int equalStringObjects(robj *a, robj *b) {
if (a->encoding == REDIS_ENCODING_INT && if (a->encoding == OBJ_ENCODING_INT &&
b->encoding == REDIS_ENCODING_INT){ b->encoding == OBJ_ENCODING_INT){
/* If both strings are integer encoded just check if the stored /* If both strings are integer encoded just check if the stored
* long is the same. */ * long is the same. */
return a->ptr == b->ptr; return a->ptr == b->ptr;
...@@ -526,7 +526,7 @@ int equalStringObjects(robj *a, robj *b) { ...@@ -526,7 +526,7 @@ int equalStringObjects(robj *a, robj *b) {
} }
size_t stringObjectLen(robj *o) { size_t stringObjectLen(robj *o) {
redisAssertWithInfo(NULL,o,o->type == REDIS_STRING); redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) { if (sdsEncodedObject(o)) {
return sdslen(o->ptr); return sdslen(o->ptr);
} else { } else {
...@@ -541,7 +541,7 @@ int getDoubleFromObject(robj *o, double *target) { ...@@ -541,7 +541,7 @@ int getDoubleFromObject(robj *o, double *target) {
if (o == NULL) { if (o == NULL) {
value = 0; value = 0;
} else { } else {
redisAssertWithInfo(NULL,o,o->type == REDIS_STRING); redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) { if (sdsEncodedObject(o)) {
errno = 0; errno = 0;
value = strtod(o->ptr, &eptr); value = strtod(o->ptr, &eptr);
...@@ -552,7 +552,7 @@ int getDoubleFromObject(robj *o, double *target) { ...@@ -552,7 +552,7 @@ int getDoubleFromObject(robj *o, double *target) {
errno == EINVAL || errno == EINVAL ||
isnan(value)) isnan(value))
return REDIS_ERR; return REDIS_ERR;
} else if (o->encoding == REDIS_ENCODING_INT) { } else if (o->encoding == OBJ_ENCODING_INT) {
value = (long)o->ptr; value = (long)o->ptr;
} else { } else {
redisPanic("Unknown string encoding"); redisPanic("Unknown string encoding");
...@@ -583,14 +583,14 @@ int getLongDoubleFromObject(robj *o, long double *target) { ...@@ -583,14 +583,14 @@ int getLongDoubleFromObject(robj *o, long double *target) {
if (o == NULL) { if (o == NULL) {
value = 0; value = 0;
} else { } else {
redisAssertWithInfo(NULL,o,o->type == REDIS_STRING); redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) { if (sdsEncodedObject(o)) {
errno = 0; errno = 0;
value = strtold(o->ptr, &eptr); value = strtold(o->ptr, &eptr);
if (isspace(((char*)o->ptr)[0]) || eptr[0] != '\0' || if (isspace(((char*)o->ptr)[0]) || eptr[0] != '\0' ||
errno == ERANGE || isnan(value)) errno == ERANGE || isnan(value))
return REDIS_ERR; return REDIS_ERR;
} else if (o->encoding == REDIS_ENCODING_INT) { } else if (o->encoding == OBJ_ENCODING_INT) {
value = (long)o->ptr; value = (long)o->ptr;
} else { } else {
redisPanic("Unknown string encoding"); redisPanic("Unknown string encoding");
...@@ -621,14 +621,14 @@ int getLongLongFromObject(robj *o, long long *target) { ...@@ -621,14 +621,14 @@ int getLongLongFromObject(robj *o, long long *target) {
if (o == NULL) { if (o == NULL) {
value = 0; value = 0;
} else { } else {
redisAssertWithInfo(NULL,o,o->type == REDIS_STRING); redisAssertWithInfo(NULL,o,o->type == OBJ_STRING);
if (sdsEncodedObject(o)) { if (sdsEncodedObject(o)) {
errno = 0; errno = 0;
value = strtoll(o->ptr, &eptr, 10); value = strtoll(o->ptr, &eptr, 10);
if (isspace(((char*)o->ptr)[0]) || eptr[0] != '\0' || if (isspace(((char*)o->ptr)[0]) || eptr[0] != '\0' ||
errno == ERANGE) errno == ERANGE)
return REDIS_ERR; return REDIS_ERR;
} else if (o->encoding == REDIS_ENCODING_INT) { } else if (o->encoding == OBJ_ENCODING_INT) {
value = (long)o->ptr; value = (long)o->ptr;
} else { } else {
redisPanic("Unknown string encoding"); redisPanic("Unknown string encoding");
...@@ -670,14 +670,14 @@ int getLongFromObjectOrReply(client *c, robj *o, long *target, const char *msg) ...@@ -670,14 +670,14 @@ int getLongFromObjectOrReply(client *c, robj *o, long *target, const char *msg)
char *strEncoding(int encoding) { char *strEncoding(int encoding) {
switch(encoding) { switch(encoding) {
case REDIS_ENCODING_RAW: return "raw"; case OBJ_ENCODING_RAW: return "raw";
case REDIS_ENCODING_INT: return "int"; case OBJ_ENCODING_INT: return "int";
case REDIS_ENCODING_HT: return "hashtable"; case OBJ_ENCODING_HT: return "hashtable";
case REDIS_ENCODING_QUICKLIST: return "quicklist"; case OBJ_ENCODING_QUICKLIST: return "quicklist";
case REDIS_ENCODING_ZIPLIST: return "ziplist"; case OBJ_ENCODING_ZIPLIST: return "ziplist";
case REDIS_ENCODING_INTSET: return "intset"; case OBJ_ENCODING_INTSET: return "intset";
case REDIS_ENCODING_SKIPLIST: return "skiplist"; case OBJ_ENCODING_SKIPLIST: return "skiplist";
case REDIS_ENCODING_EMBSTR: return "embstr"; case OBJ_ENCODING_EMBSTR: return "embstr";
default: return "unknown"; default: return "unknown";
} }
} }
......
...@@ -209,7 +209,7 @@ void *rdbLoadIntegerObject(rio *rdb, int enctype, int flags) { ...@@ -209,7 +209,7 @@ void *rdbLoadIntegerObject(rio *rdb, int enctype, int flags) {
} else if (encode) { } else if (encode) {
return createStringObjectFromLongLong(val); return createStringObjectFromLongLong(val);
} else { } else {
return createObject(REDIS_STRING,sdsfromlonglong(val)); return createObject(OBJ_STRING,sdsfromlonglong(val));
} }
} }
...@@ -303,7 +303,7 @@ void *rdbLoadLzfStringObject(rio *rdb, int flags) { ...@@ -303,7 +303,7 @@ void *rdbLoadLzfStringObject(rio *rdb, int flags) {
if (plain) if (plain)
return val; return val;
else else
return createObject(REDIS_STRING,val); return createObject(OBJ_STRING,val);
err: err:
zfree(c); zfree(c);
if (plain) if (plain)
...@@ -370,7 +370,7 @@ ssize_t rdbSaveLongLongAsStringObject(rio *rdb, long long value) { ...@@ -370,7 +370,7 @@ ssize_t rdbSaveLongLongAsStringObject(rio *rdb, long long value) {
int rdbSaveStringObject(rio *rdb, robj *obj) { int rdbSaveStringObject(rio *rdb, robj *obj) {
/* Avoid to decode the object, then encode it again, if the /* Avoid to decode the object, then encode it again, if the
* object is already integer encoded. */ * object is already integer encoded. */
if (obj->encoding == REDIS_ENCODING_INT) { if (obj->encoding == OBJ_ENCODING_INT) {
return rdbSaveLongLongAsStringObject(rdb,(long)obj->ptr); return rdbSaveLongLongAsStringObject(rdb,(long)obj->ptr);
} else { } else {
redisAssertWithInfo(NULL,obj,sdsEncodedObject(obj)); redisAssertWithInfo(NULL,obj,sdsEncodedObject(obj));
...@@ -498,31 +498,31 @@ int rdbLoadDoubleValue(rio *rdb, double *val) { ...@@ -498,31 +498,31 @@ int rdbLoadDoubleValue(rio *rdb, double *val) {
/* Save the object type of object "o". */ /* Save the object type of object "o". */
int rdbSaveObjectType(rio *rdb, robj *o) { int rdbSaveObjectType(rio *rdb, robj *o) {
switch (o->type) { switch (o->type) {
case REDIS_STRING: case OBJ_STRING:
return rdbSaveType(rdb,REDIS_RDB_TYPE_STRING); return rdbSaveType(rdb,REDIS_RDB_TYPE_STRING);
case REDIS_LIST: case OBJ_LIST:
if (o->encoding == REDIS_ENCODING_QUICKLIST) if (o->encoding == OBJ_ENCODING_QUICKLIST)
return rdbSaveType(rdb,REDIS_RDB_TYPE_LIST_QUICKLIST); return rdbSaveType(rdb,REDIS_RDB_TYPE_LIST_QUICKLIST);
else else
redisPanic("Unknown list encoding"); redisPanic("Unknown list encoding");
case REDIS_SET: case OBJ_SET:
if (o->encoding == REDIS_ENCODING_INTSET) if (o->encoding == OBJ_ENCODING_INTSET)
return rdbSaveType(rdb,REDIS_RDB_TYPE_SET_INTSET); return rdbSaveType(rdb,REDIS_RDB_TYPE_SET_INTSET);
else if (o->encoding == REDIS_ENCODING_HT) else if (o->encoding == OBJ_ENCODING_HT)
return rdbSaveType(rdb,REDIS_RDB_TYPE_SET); return rdbSaveType(rdb,REDIS_RDB_TYPE_SET);
else else
redisPanic("Unknown set encoding"); redisPanic("Unknown set encoding");
case REDIS_ZSET: case OBJ_ZSET:
if (o->encoding == REDIS_ENCODING_ZIPLIST) if (o->encoding == OBJ_ENCODING_ZIPLIST)
return rdbSaveType(rdb,REDIS_RDB_TYPE_ZSET_ZIPLIST); return rdbSaveType(rdb,REDIS_RDB_TYPE_ZSET_ZIPLIST);
else if (o->encoding == REDIS_ENCODING_SKIPLIST) else if (o->encoding == OBJ_ENCODING_SKIPLIST)
return rdbSaveType(rdb,REDIS_RDB_TYPE_ZSET); return rdbSaveType(rdb,REDIS_RDB_TYPE_ZSET);
else else
redisPanic("Unknown sorted set encoding"); redisPanic("Unknown sorted set encoding");
case REDIS_HASH: case OBJ_HASH:
if (o->encoding == REDIS_ENCODING_ZIPLIST) if (o->encoding == OBJ_ENCODING_ZIPLIST)
return rdbSaveType(rdb,REDIS_RDB_TYPE_HASH_ZIPLIST); return rdbSaveType(rdb,REDIS_RDB_TYPE_HASH_ZIPLIST);
else if (o->encoding == REDIS_ENCODING_HT) else if (o->encoding == OBJ_ENCODING_HT)
return rdbSaveType(rdb,REDIS_RDB_TYPE_HASH); return rdbSaveType(rdb,REDIS_RDB_TYPE_HASH);
else else
redisPanic("Unknown hash encoding"); redisPanic("Unknown hash encoding");
...@@ -545,13 +545,13 @@ int rdbLoadObjectType(rio *rdb) { ...@@ -545,13 +545,13 @@ int rdbLoadObjectType(rio *rdb) {
ssize_t rdbSaveObject(rio *rdb, robj *o) { ssize_t rdbSaveObject(rio *rdb, robj *o) {
ssize_t n = 0, nwritten = 0; ssize_t n = 0, nwritten = 0;
if (o->type == REDIS_STRING) { if (o->type == OBJ_STRING) {
/* Save a string value */ /* Save a string value */
if ((n = rdbSaveStringObject(rdb,o)) == -1) return -1; if ((n = rdbSaveStringObject(rdb,o)) == -1) return -1;
nwritten += n; nwritten += n;
} else if (o->type == REDIS_LIST) { } else if (o->type == OBJ_LIST) {
/* Save a list value */ /* Save a list value */
if (o->encoding == REDIS_ENCODING_QUICKLIST) { if (o->encoding == OBJ_ENCODING_QUICKLIST) {
quicklist *ql = o->ptr; quicklist *ql = o->ptr;
quicklistNode *node = ql->head; quicklistNode *node = ql->head;
...@@ -572,9 +572,9 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) { ...@@ -572,9 +572,9 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) {
} else { } else {
redisPanic("Unknown list encoding"); redisPanic("Unknown list encoding");
} }
} else if (o->type == REDIS_SET) { } else if (o->type == OBJ_SET) {
/* Save a set value */ /* Save a set value */
if (o->encoding == REDIS_ENCODING_HT) { if (o->encoding == OBJ_ENCODING_HT) {
dict *set = o->ptr; dict *set = o->ptr;
dictIterator *di = dictGetIterator(set); dictIterator *di = dictGetIterator(set);
dictEntry *de; dictEntry *de;
...@@ -588,7 +588,7 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) { ...@@ -588,7 +588,7 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) {
nwritten += n; nwritten += n;
} }
dictReleaseIterator(di); dictReleaseIterator(di);
} else if (o->encoding == REDIS_ENCODING_INTSET) { } else if (o->encoding == OBJ_ENCODING_INTSET) {
size_t l = intsetBlobLen((intset*)o->ptr); size_t l = intsetBlobLen((intset*)o->ptr);
if ((n = rdbSaveRawString(rdb,o->ptr,l)) == -1) return -1; if ((n = rdbSaveRawString(rdb,o->ptr,l)) == -1) return -1;
...@@ -596,14 +596,14 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) { ...@@ -596,14 +596,14 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) {
} else { } else {
redisPanic("Unknown set encoding"); redisPanic("Unknown set encoding");
} }
} else if (o->type == REDIS_ZSET) { } else if (o->type == OBJ_ZSET) {
/* Save a sorted set value */ /* Save a sorted set value */
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
size_t l = ziplistBlobLen((unsigned char*)o->ptr); size_t l = ziplistBlobLen((unsigned char*)o->ptr);
if ((n = rdbSaveRawString(rdb,o->ptr,l)) == -1) return -1; if ((n = rdbSaveRawString(rdb,o->ptr,l)) == -1) return -1;
nwritten += n; nwritten += n;
} else if (o->encoding == REDIS_ENCODING_SKIPLIST) { } else if (o->encoding == OBJ_ENCODING_SKIPLIST) {
zset *zs = o->ptr; zset *zs = o->ptr;
dictIterator *di = dictGetIterator(zs->dict); dictIterator *di = dictGetIterator(zs->dict);
dictEntry *de; dictEntry *de;
...@@ -624,15 +624,15 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) { ...@@ -624,15 +624,15 @@ ssize_t rdbSaveObject(rio *rdb, robj *o) {
} else { } else {
redisPanic("Unknown sorted set encoding"); redisPanic("Unknown sorted set encoding");
} }
} else if (o->type == REDIS_HASH) { } else if (o->type == OBJ_HASH) {
/* Save a hash value */ /* Save a hash value */
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
size_t l = ziplistBlobLen((unsigned char*)o->ptr); size_t l = ziplistBlobLen((unsigned char*)o->ptr);
if ((n = rdbSaveRawString(rdb,o->ptr,l)) == -1) return -1; if ((n = rdbSaveRawString(rdb,o->ptr,l)) == -1) return -1;
nwritten += n; nwritten += n;
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
dictIterator *di = dictGetIterator(o->ptr); dictIterator *di = dictGetIterator(o->ptr);
dictEntry *de; dictEntry *de;
...@@ -979,19 +979,19 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -979,19 +979,19 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
if ((ele = rdbLoadEncodedStringObject(rdb)) == NULL) return NULL; if ((ele = rdbLoadEncodedStringObject(rdb)) == NULL) return NULL;
ele = tryObjectEncoding(ele); ele = tryObjectEncoding(ele);
if (o->encoding == REDIS_ENCODING_INTSET) { if (o->encoding == OBJ_ENCODING_INTSET) {
/* Fetch integer value from element */ /* Fetch integer value from element */
if (isObjectRepresentableAsLongLong(ele,&llval) == REDIS_OK) { if (isObjectRepresentableAsLongLong(ele,&llval) == REDIS_OK) {
o->ptr = intsetAdd(o->ptr,llval,NULL); o->ptr = intsetAdd(o->ptr,llval,NULL);
} else { } else {
setTypeConvert(o,REDIS_ENCODING_HT); setTypeConvert(o,OBJ_ENCODING_HT);
dictExpand(o->ptr,len); dictExpand(o->ptr,len);
} }
} }
/* This will also be called when the set was just converted /* This will also be called when the set was just converted
* to a regular hash table encoded set */ * to a regular hash table encoded set */
if (o->encoding == REDIS_ENCODING_HT) { if (o->encoding == OBJ_ENCODING_HT) {
dictAdd((dict*)o->ptr,ele,NULL); dictAdd((dict*)o->ptr,ele,NULL);
} else { } else {
decrRefCount(ele); decrRefCount(ele);
...@@ -1029,7 +1029,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -1029,7 +1029,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
/* Convert *after* loading, since sorted sets are not stored ordered. */ /* Convert *after* loading, since sorted sets are not stored ordered. */
if (zsetLength(o) <= server.zset_max_ziplist_entries && if (zsetLength(o) <= server.zset_max_ziplist_entries &&
maxelelen <= server.zset_max_ziplist_value) maxelelen <= server.zset_max_ziplist_value)
zsetConvert(o,REDIS_ENCODING_ZIPLIST); zsetConvert(o,OBJ_ENCODING_ZIPLIST);
} else if (rdbtype == REDIS_RDB_TYPE_HASH) { } else if (rdbtype == REDIS_RDB_TYPE_HASH) {
size_t len; size_t len;
int ret; int ret;
...@@ -1041,10 +1041,10 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -1041,10 +1041,10 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
/* Too many entries? Use a hash table. */ /* Too many entries? Use a hash table. */
if (len > server.hash_max_ziplist_entries) if (len > server.hash_max_ziplist_entries)
hashTypeConvert(o, REDIS_ENCODING_HT); hashTypeConvert(o, OBJ_ENCODING_HT);
/* Load every field and value into the ziplist */ /* Load every field and value into the ziplist */
while (o->encoding == REDIS_ENCODING_ZIPLIST && len > 0) { while (o->encoding == OBJ_ENCODING_ZIPLIST && len > 0) {
robj *field, *value; robj *field, *value;
len--; len--;
...@@ -1065,7 +1065,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -1065,7 +1065,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
{ {
decrRefCount(field); decrRefCount(field);
decrRefCount(value); decrRefCount(value);
hashTypeConvert(o, REDIS_ENCODING_HT); hashTypeConvert(o, OBJ_ENCODING_HT);
break; break;
} }
decrRefCount(field); decrRefCount(field);
...@@ -1073,7 +1073,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -1073,7 +1073,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
} }
/* Load remaining fields and values into the hash table */ /* Load remaining fields and values into the hash table */
while (o->encoding == REDIS_ENCODING_HT && len > 0) { while (o->encoding == OBJ_ENCODING_HT && len > 0) {
robj *field, *value; robj *field, *value;
len--; len--;
...@@ -1114,7 +1114,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -1114,7 +1114,7 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
{ {
unsigned char *encoded = rdbGenericLoadStringObject(rdb,RDB_LOAD_PLAIN); unsigned char *encoded = rdbGenericLoadStringObject(rdb,RDB_LOAD_PLAIN);
if (encoded == NULL) return NULL; if (encoded == NULL) return NULL;
o = createObject(REDIS_STRING,encoded); /* Obj type fixed below. */ o = createObject(OBJ_STRING,encoded); /* Obj type fixed below. */
/* Fix the object encoding, and make sure to convert the encoded /* Fix the object encoding, and make sure to convert the encoded
* data type into the base type if accordingly to the current * data type into the base type if accordingly to the current
...@@ -1142,38 +1142,38 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -1142,38 +1142,38 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
zfree(o->ptr); zfree(o->ptr);
o->ptr = zl; o->ptr = zl;
o->type = REDIS_HASH; o->type = OBJ_HASH;
o->encoding = REDIS_ENCODING_ZIPLIST; o->encoding = OBJ_ENCODING_ZIPLIST;
if (hashTypeLength(o) > server.hash_max_ziplist_entries || if (hashTypeLength(o) > server.hash_max_ziplist_entries ||
maxlen > server.hash_max_ziplist_value) maxlen > server.hash_max_ziplist_value)
{ {
hashTypeConvert(o, REDIS_ENCODING_HT); hashTypeConvert(o, OBJ_ENCODING_HT);
} }
} }
break; break;
case REDIS_RDB_TYPE_LIST_ZIPLIST: case REDIS_RDB_TYPE_LIST_ZIPLIST:
o->type = REDIS_LIST; o->type = OBJ_LIST;
o->encoding = REDIS_ENCODING_ZIPLIST; o->encoding = OBJ_ENCODING_ZIPLIST;
listTypeConvert(o,REDIS_ENCODING_QUICKLIST); listTypeConvert(o,OBJ_ENCODING_QUICKLIST);
break; break;
case REDIS_RDB_TYPE_SET_INTSET: case REDIS_RDB_TYPE_SET_INTSET:
o->type = REDIS_SET; o->type = OBJ_SET;
o->encoding = REDIS_ENCODING_INTSET; o->encoding = OBJ_ENCODING_INTSET;
if (intsetLen(o->ptr) > server.set_max_intset_entries) if (intsetLen(o->ptr) > server.set_max_intset_entries)
setTypeConvert(o,REDIS_ENCODING_HT); setTypeConvert(o,OBJ_ENCODING_HT);
break; break;
case REDIS_RDB_TYPE_ZSET_ZIPLIST: case REDIS_RDB_TYPE_ZSET_ZIPLIST:
o->type = REDIS_ZSET; o->type = OBJ_ZSET;
o->encoding = REDIS_ENCODING_ZIPLIST; o->encoding = OBJ_ENCODING_ZIPLIST;
if (zsetLength(o) > server.zset_max_ziplist_entries) if (zsetLength(o) > server.zset_max_ziplist_entries)
zsetConvert(o,REDIS_ENCODING_SKIPLIST); zsetConvert(o,OBJ_ENCODING_SKIPLIST);
break; break;
case REDIS_RDB_TYPE_HASH_ZIPLIST: case REDIS_RDB_TYPE_HASH_ZIPLIST:
o->type = REDIS_HASH; o->type = OBJ_HASH;
o->encoding = REDIS_ENCODING_ZIPLIST; o->encoding = OBJ_ENCODING_ZIPLIST;
if (hashTypeLength(o) > server.hash_max_ziplist_entries) if (hashTypeLength(o) > server.hash_max_ziplist_entries)
hashTypeConvert(o, REDIS_ENCODING_HT); hashTypeConvert(o, OBJ_ENCODING_HT);
break; break;
default: default:
rdbExitReportCorruptRDB("Unknown encoding"); rdbExitReportCorruptRDB("Unknown encoding");
......
...@@ -154,7 +154,7 @@ void feedReplicationBacklogWithObject(robj *o) { ...@@ -154,7 +154,7 @@ void feedReplicationBacklogWithObject(robj *o) {
void *p; void *p;
size_t len; size_t len;
if (o->encoding == REDIS_ENCODING_INT) { if (o->encoding == OBJ_ENCODING_INT) {
len = ll2string(llstr,sizeof(llstr),(long)o->ptr); len = ll2string(llstr,sizeof(llstr),(long)o->ptr);
p = llstr; p = llstr;
} else { } else {
...@@ -188,7 +188,7 @@ void replicationFeedSlaves(list *slaves, int dictid, robj **argv, int argc) { ...@@ -188,7 +188,7 @@ void replicationFeedSlaves(list *slaves, int dictid, robj **argv, int argc) {
int dictid_len; int dictid_len;
dictid_len = ll2string(llstr,sizeof(llstr),dictid); dictid_len = ll2string(llstr,sizeof(llstr),dictid);
selectcmd = createObject(REDIS_STRING, selectcmd = createObject(OBJ_STRING,
sdscatprintf(sdsempty(), sdscatprintf(sdsempty(),
"*2\r\n$6\r\nSELECT\r\n$%d\r\n%s\r\n", "*2\r\n$6\r\nSELECT\r\n$%d\r\n%s\r\n",
dictid_len, llstr)); dictid_len, llstr));
...@@ -277,7 +277,7 @@ void replicationFeedMonitors(client *c, list *monitors, int dictid, robj **argv, ...@@ -277,7 +277,7 @@ void replicationFeedMonitors(client *c, list *monitors, int dictid, robj **argv,
} }
for (j = 0; j < argc; j++) { for (j = 0; j < argc; j++) {
if (argv[j]->encoding == REDIS_ENCODING_INT) { if (argv[j]->encoding == OBJ_ENCODING_INT) {
cmdrepr = sdscatprintf(cmdrepr, "\"%ld\"", (long)argv[j]->ptr); cmdrepr = sdscatprintf(cmdrepr, "\"%ld\"", (long)argv[j]->ptr);
} else { } else {
cmdrepr = sdscatrepr(cmdrepr,(char*)argv[j]->ptr, cmdrepr = sdscatrepr(cmdrepr,(char*)argv[j]->ptr,
...@@ -287,7 +287,7 @@ void replicationFeedMonitors(client *c, list *monitors, int dictid, robj **argv, ...@@ -287,7 +287,7 @@ void replicationFeedMonitors(client *c, list *monitors, int dictid, robj **argv,
cmdrepr = sdscatlen(cmdrepr," ",1); cmdrepr = sdscatlen(cmdrepr," ",1);
} }
cmdrepr = sdscatlen(cmdrepr,"\r\n",2); cmdrepr = sdscatlen(cmdrepr,"\r\n",2);
cmdobj = createObject(REDIS_STRING,cmdrepr); cmdobj = createObject(OBJ_STRING,cmdrepr);
listRewind(monitors,&li); listRewind(monitors,&li);
while((ln = listNext(&li))) { while((ln = listNext(&li))) {
......
...@@ -415,8 +415,8 @@ cleanup: ...@@ -415,8 +415,8 @@ cleanup:
* (we must be the only owner) for us to cache it. */ * (we must be the only owner) for us to cache it. */
if (j < LUA_CMD_OBJCACHE_SIZE && if (j < LUA_CMD_OBJCACHE_SIZE &&
o->refcount == 1 && o->refcount == 1 &&
(o->encoding == REDIS_ENCODING_RAW || (o->encoding == OBJ_ENCODING_RAW ||
o->encoding == REDIS_ENCODING_EMBSTR) && o->encoding == OBJ_ENCODING_EMBSTR) &&
sdslen(o->ptr) <= LUA_CMD_OBJCACHE_MAX_LEN) sdslen(o->ptr) <= LUA_CMD_OBJCACHE_MAX_LEN)
{ {
sds s = o->ptr; sds s = o->ptr;
......
...@@ -495,8 +495,8 @@ int dictEncObjKeyCompare(void *privdata, const void *key1, ...@@ -495,8 +495,8 @@ int dictEncObjKeyCompare(void *privdata, const void *key1,
robj *o1 = (robj*) key1, *o2 = (robj*) key2; robj *o1 = (robj*) key1, *o2 = (robj*) key2;
int cmp; int cmp;
if (o1->encoding == REDIS_ENCODING_INT && if (o1->encoding == OBJ_ENCODING_INT &&
o2->encoding == REDIS_ENCODING_INT) o2->encoding == OBJ_ENCODING_INT)
return o1->ptr == o2->ptr; return o1->ptr == o2->ptr;
o1 = getDecodedObject(o1); o1 = getDecodedObject(o1);
...@@ -513,7 +513,7 @@ unsigned int dictEncObjHash(const void *key) { ...@@ -513,7 +513,7 @@ unsigned int dictEncObjHash(const void *key) {
if (sdsEncodedObject(o)) { if (sdsEncodedObject(o)) {
return dictGenHashFunction(o->ptr, sdslen((sds)o->ptr)); return dictGenHashFunction(o->ptr, sdslen((sds)o->ptr));
} else { } else {
if (o->encoding == REDIS_ENCODING_INT) { if (o->encoding == OBJ_ENCODING_INT) {
char buf[32]; char buf[32];
int len; int len;
...@@ -1324,61 +1324,61 @@ void beforeSleep(struct aeEventLoop *eventLoop) { ...@@ -1324,61 +1324,61 @@ void beforeSleep(struct aeEventLoop *eventLoop) {
void createSharedObjects(void) { void createSharedObjects(void) {
int j; int j;
shared.crlf = createObject(REDIS_STRING,sdsnew("\r\n")); shared.crlf = createObject(OBJ_STRING,sdsnew("\r\n"));
shared.ok = createObject(REDIS_STRING,sdsnew("+OK\r\n")); shared.ok = createObject(OBJ_STRING,sdsnew("+OK\r\n"));
shared.err = createObject(REDIS_STRING,sdsnew("-ERR\r\n")); shared.err = createObject(OBJ_STRING,sdsnew("-ERR\r\n"));
shared.emptybulk = createObject(REDIS_STRING,sdsnew("$0\r\n\r\n")); shared.emptybulk = createObject(OBJ_STRING,sdsnew("$0\r\n\r\n"));
shared.czero = createObject(REDIS_STRING,sdsnew(":0\r\n")); shared.czero = createObject(OBJ_STRING,sdsnew(":0\r\n"));
shared.cone = createObject(REDIS_STRING,sdsnew(":1\r\n")); shared.cone = createObject(OBJ_STRING,sdsnew(":1\r\n"));
shared.cnegone = createObject(REDIS_STRING,sdsnew(":-1\r\n")); shared.cnegone = createObject(OBJ_STRING,sdsnew(":-1\r\n"));
shared.nullbulk = createObject(REDIS_STRING,sdsnew("$-1\r\n")); shared.nullbulk = createObject(OBJ_STRING,sdsnew("$-1\r\n"));
shared.nullmultibulk = createObject(REDIS_STRING,sdsnew("*-1\r\n")); shared.nullmultibulk = createObject(OBJ_STRING,sdsnew("*-1\r\n"));
shared.emptymultibulk = createObject(REDIS_STRING,sdsnew("*0\r\n")); shared.emptymultibulk = createObject(OBJ_STRING,sdsnew("*0\r\n"));
shared.pong = createObject(REDIS_STRING,sdsnew("+PONG\r\n")); shared.pong = createObject(OBJ_STRING,sdsnew("+PONG\r\n"));
shared.queued = createObject(REDIS_STRING,sdsnew("+QUEUED\r\n")); shared.queued = createObject(OBJ_STRING,sdsnew("+QUEUED\r\n"));
shared.emptyscan = createObject(REDIS_STRING,sdsnew("*2\r\n$1\r\n0\r\n*0\r\n")); shared.emptyscan = createObject(OBJ_STRING,sdsnew("*2\r\n$1\r\n0\r\n*0\r\n"));
shared.wrongtypeerr = createObject(REDIS_STRING,sdsnew( shared.wrongtypeerr = createObject(OBJ_STRING,sdsnew(
"-WRONGTYPE Operation against a key holding the wrong kind of value\r\n")); "-WRONGTYPE Operation against a key holding the wrong kind of value\r\n"));
shared.nokeyerr = createObject(REDIS_STRING,sdsnew( shared.nokeyerr = createObject(OBJ_STRING,sdsnew(
"-ERR no such key\r\n")); "-ERR no such key\r\n"));
shared.syntaxerr = createObject(REDIS_STRING,sdsnew( shared.syntaxerr = createObject(OBJ_STRING,sdsnew(
"-ERR syntax error\r\n")); "-ERR syntax error\r\n"));
shared.sameobjecterr = createObject(REDIS_STRING,sdsnew( shared.sameobjecterr = createObject(OBJ_STRING,sdsnew(
"-ERR source and destination objects are the same\r\n")); "-ERR source and destination objects are the same\r\n"));
shared.outofrangeerr = createObject(REDIS_STRING,sdsnew( shared.outofrangeerr = createObject(OBJ_STRING,sdsnew(
"-ERR index out of range\r\n")); "-ERR index out of range\r\n"));
shared.noscripterr = createObject(REDIS_STRING,sdsnew( shared.noscripterr = createObject(OBJ_STRING,sdsnew(
"-NOSCRIPT No matching script. Please use EVAL.\r\n")); "-NOSCRIPT No matching script. Please use EVAL.\r\n"));
shared.loadingerr = createObject(REDIS_STRING,sdsnew( shared.loadingerr = createObject(OBJ_STRING,sdsnew(
"-LOADING Redis is loading the dataset in memory\r\n")); "-LOADING Redis is loading the dataset in memory\r\n"));
shared.slowscripterr = createObject(REDIS_STRING,sdsnew( shared.slowscripterr = createObject(OBJ_STRING,sdsnew(
"-BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.\r\n")); "-BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.\r\n"));
shared.masterdownerr = createObject(REDIS_STRING,sdsnew( shared.masterdownerr = createObject(OBJ_STRING,sdsnew(
"-MASTERDOWN Link with MASTER is down and slave-serve-stale-data is set to 'no'.\r\n")); "-MASTERDOWN Link with MASTER is down and slave-serve-stale-data is set to 'no'.\r\n"));
shared.bgsaveerr = createObject(REDIS_STRING,sdsnew( shared.bgsaveerr = createObject(OBJ_STRING,sdsnew(
"-MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.\r\n")); "-MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.\r\n"));
shared.roslaveerr = createObject(REDIS_STRING,sdsnew( shared.roslaveerr = createObject(OBJ_STRING,sdsnew(
"-READONLY You can't write against a read only slave.\r\n")); "-READONLY You can't write against a read only slave.\r\n"));
shared.noautherr = createObject(REDIS_STRING,sdsnew( shared.noautherr = createObject(OBJ_STRING,sdsnew(
"-NOAUTH Authentication required.\r\n")); "-NOAUTH Authentication required.\r\n"));
shared.oomerr = createObject(REDIS_STRING,sdsnew( shared.oomerr = createObject(OBJ_STRING,sdsnew(
"-OOM command not allowed when used memory > 'maxmemory'.\r\n")); "-OOM command not allowed when used memory > 'maxmemory'.\r\n"));
shared.execaborterr = createObject(REDIS_STRING,sdsnew( shared.execaborterr = createObject(OBJ_STRING,sdsnew(
"-EXECABORT Transaction discarded because of previous errors.\r\n")); "-EXECABORT Transaction discarded because of previous errors.\r\n"));
shared.noreplicaserr = createObject(REDIS_STRING,sdsnew( shared.noreplicaserr = createObject(OBJ_STRING,sdsnew(
"-NOREPLICAS Not enough good slaves to write.\r\n")); "-NOREPLICAS Not enough good slaves to write.\r\n"));
shared.busykeyerr = createObject(REDIS_STRING,sdsnew( shared.busykeyerr = createObject(OBJ_STRING,sdsnew(
"-BUSYKEY Target key name already exists.\r\n")); "-BUSYKEY Target key name already exists.\r\n"));
shared.space = createObject(REDIS_STRING,sdsnew(" ")); shared.space = createObject(OBJ_STRING,sdsnew(" "));
shared.colon = createObject(REDIS_STRING,sdsnew(":")); shared.colon = createObject(OBJ_STRING,sdsnew(":"));
shared.plus = createObject(REDIS_STRING,sdsnew("+")); shared.plus = createObject(OBJ_STRING,sdsnew("+"));
for (j = 0; j < REDIS_SHARED_SELECT_CMDS; j++) { for (j = 0; j < REDIS_SHARED_SELECT_CMDS; j++) {
char dictid_str[64]; char dictid_str[64];
int dictid_len; int dictid_len;
dictid_len = ll2string(dictid_str,sizeof(dictid_str),j); dictid_len = ll2string(dictid_str,sizeof(dictid_str),j);
shared.select[j] = createObject(REDIS_STRING, shared.select[j] = createObject(OBJ_STRING,
sdscatprintf(sdsempty(), sdscatprintf(sdsempty(),
"*2\r\n$6\r\nSELECT\r\n$%d\r\n%s\r\n", "*2\r\n$6\r\nSELECT\r\n$%d\r\n%s\r\n",
dictid_len, dictid_str)); dictid_len, dictid_str));
...@@ -1394,13 +1394,13 @@ void createSharedObjects(void) { ...@@ -1394,13 +1394,13 @@ void createSharedObjects(void) {
shared.lpop = createStringObject("LPOP",4); shared.lpop = createStringObject("LPOP",4);
shared.lpush = createStringObject("LPUSH",5); shared.lpush = createStringObject("LPUSH",5);
for (j = 0; j < REDIS_SHARED_INTEGERS; j++) { for (j = 0; j < REDIS_SHARED_INTEGERS; j++) {
shared.integers[j] = createObject(REDIS_STRING,(void*)(long)j); shared.integers[j] = createObject(OBJ_STRING,(void*)(long)j);
shared.integers[j]->encoding = REDIS_ENCODING_INT; shared.integers[j]->encoding = OBJ_ENCODING_INT;
} }
for (j = 0; j < REDIS_SHARED_BULKHDR_LEN; j++) { for (j = 0; j < REDIS_SHARED_BULKHDR_LEN; j++) {
shared.mbulkhdr[j] = createObject(REDIS_STRING, shared.mbulkhdr[j] = createObject(OBJ_STRING,
sdscatprintf(sdsempty(),"*%d\r\n",j)); sdscatprintf(sdsempty(),"*%d\r\n",j));
shared.bulkhdr[j] = createObject(REDIS_STRING, shared.bulkhdr[j] = createObject(OBJ_STRING,
sdscatprintf(sdsempty(),"$%d\r\n",j)); sdscatprintf(sdsempty(),"$%d\r\n",j));
} }
/* The following two shared objects, minstring and maxstrings, are not /* The following two shared objects, minstring and maxstrings, are not
...@@ -1472,13 +1472,13 @@ void initServerConfig(void) { ...@@ -1472,13 +1472,13 @@ void initServerConfig(void) {
server.maxmemory = CONFIG_DEFAULT_MAXMEMORY; server.maxmemory = CONFIG_DEFAULT_MAXMEMORY;
server.maxmemory_policy = CONFIG_DEFAULT_MAXMEMORY_POLICY; server.maxmemory_policy = CONFIG_DEFAULT_MAXMEMORY_POLICY;
server.maxmemory_samples = CONFIG_DEFAULT_MAXMEMORY_SAMPLES; server.maxmemory_samples = CONFIG_DEFAULT_MAXMEMORY_SAMPLES;
server.hash_max_ziplist_entries = REDIS_HASH_MAX_ZIPLIST_ENTRIES; server.hash_max_ziplist_entries = OBJ_HASH_MAX_ZIPLIST_ENTRIES;
server.hash_max_ziplist_value = REDIS_HASH_MAX_ZIPLIST_VALUE; server.hash_max_ziplist_value = OBJ_HASH_MAX_ZIPLIST_VALUE;
server.list_max_ziplist_size = REDIS_LIST_MAX_ZIPLIST_SIZE; server.list_max_ziplist_size = OBJ_LIST_MAX_ZIPLIST_SIZE;
server.list_compress_depth = REDIS_LIST_COMPRESS_DEPTH; server.list_compress_depth = OBJ_LIST_COMPRESS_DEPTH;
server.set_max_intset_entries = REDIS_SET_MAX_INTSET_ENTRIES; server.set_max_intset_entries = OBJ_SET_MAX_INTSET_ENTRIES;
server.zset_max_ziplist_entries = REDIS_ZSET_MAX_ZIPLIST_ENTRIES; server.zset_max_ziplist_entries = OBJ_ZSET_MAX_ZIPLIST_ENTRIES;
server.zset_max_ziplist_value = REDIS_ZSET_MAX_ZIPLIST_VALUE; server.zset_max_ziplist_value = OBJ_ZSET_MAX_ZIPLIST_VALUE;
server.hll_sparse_max_bytes = CONFIG_DEFAULT_HLL_SPARSE_MAX_BYTES; server.hll_sparse_max_bytes = CONFIG_DEFAULT_HLL_SPARSE_MAX_BYTES;
server.shutdown_asap = 0; server.shutdown_asap = 0;
server.repl_ping_slave_period = REDIS_REPL_PING_SLAVE_PERIOD; server.repl_ping_slave_period = REDIS_REPL_PING_SLAVE_PERIOD;
......
...@@ -184,25 +184,25 @@ typedef long long mstime_t; /* millisecond time type. */ ...@@ -184,25 +184,25 @@ typedef long long mstime_t; /* millisecond time type. */
#define REDIS_CMD_FAST 8192 /* "F" flag */ #define REDIS_CMD_FAST 8192 /* "F" flag */
/* Object types */ /* Object types */
#define REDIS_STRING 0 #define OBJ_STRING 0
#define REDIS_LIST 1 #define OBJ_LIST 1
#define REDIS_SET 2 #define OBJ_SET 2
#define REDIS_ZSET 3 #define OBJ_ZSET 3
#define REDIS_HASH 4 #define OBJ_HASH 4
/* Objects encoding. Some kind of objects like Strings and Hashes can be /* Objects encoding. Some kind of objects like Strings and Hashes can be
* internally represented in multiple ways. The 'encoding' field of the object * internally represented in multiple ways. The 'encoding' field of the object
* is set to one of this fields for this object. */ * is set to one of this fields for this object. */
#define REDIS_ENCODING_RAW 0 /* Raw representation */ #define OBJ_ENCODING_RAW 0 /* Raw representation */
#define REDIS_ENCODING_INT 1 /* Encoded as integer */ #define OBJ_ENCODING_INT 1 /* Encoded as integer */
#define REDIS_ENCODING_HT 2 /* Encoded as hash table */ #define OBJ_ENCODING_HT 2 /* Encoded as hash table */
#define REDIS_ENCODING_ZIPMAP 3 /* Encoded as zipmap */ #define OBJ_ENCODING_ZIPMAP 3 /* Encoded as zipmap */
#define REDIS_ENCODING_LINKEDLIST 4 /* Encoded as regular linked list */ #define OBJ_ENCODING_LINKEDLIST 4 /* Encoded as regular linked list */
#define REDIS_ENCODING_ZIPLIST 5 /* Encoded as ziplist */ #define OBJ_ENCODING_ZIPLIST 5 /* Encoded as ziplist */
#define REDIS_ENCODING_INTSET 6 /* Encoded as intset */ #define OBJ_ENCODING_INTSET 6 /* Encoded as intset */
#define REDIS_ENCODING_SKIPLIST 7 /* Encoded as skiplist */ #define OBJ_ENCODING_SKIPLIST 7 /* Encoded as skiplist */
#define REDIS_ENCODING_EMBSTR 8 /* Embedded sds string encoding */ #define OBJ_ENCODING_EMBSTR 8 /* Embedded sds string encoding */
#define REDIS_ENCODING_QUICKLIST 9 /* Encoded as linked list of ziplists */ #define OBJ_ENCODING_QUICKLIST 9 /* Encoded as linked list of ziplists */
/* Defines related to the dump file format. To store 32 bits lengths for short /* Defines related to the dump file format. To store 32 bits lengths for short
* keys requires a lot of space, so we check the most significant 2 bits of * keys requires a lot of space, so we check the most significant 2 bits of
...@@ -333,15 +333,15 @@ typedef long long mstime_t; /* millisecond time type. */ ...@@ -333,15 +333,15 @@ typedef long long mstime_t; /* millisecond time type. */
#define CONFIG_DEFAULT_AOF_FSYNC AOF_FSYNC_EVERYSEC #define CONFIG_DEFAULT_AOF_FSYNC AOF_FSYNC_EVERYSEC
/* Zip structure related defaults */ /* Zip structure related defaults */
#define REDIS_HASH_MAX_ZIPLIST_ENTRIES 512 #define OBJ_HASH_MAX_ZIPLIST_ENTRIES 512
#define REDIS_HASH_MAX_ZIPLIST_VALUE 64 #define OBJ_HASH_MAX_ZIPLIST_VALUE 64
#define REDIS_SET_MAX_INTSET_ENTRIES 512 #define OBJ_SET_MAX_INTSET_ENTRIES 512
#define REDIS_ZSET_MAX_ZIPLIST_ENTRIES 128 #define OBJ_ZSET_MAX_ZIPLIST_ENTRIES 128
#define REDIS_ZSET_MAX_ZIPLIST_VALUE 64 #define OBJ_ZSET_MAX_ZIPLIST_VALUE 64
/* List defaults */ /* List defaults */
#define REDIS_LIST_MAX_ZIPLIST_SIZE -2 #define OBJ_LIST_MAX_ZIPLIST_SIZE -2
#define REDIS_LIST_COMPRESS_DEPTH 0 #define OBJ_LIST_COMPRESS_DEPTH 0
/* HyperLogLog defines */ /* HyperLogLog defines */
#define CONFIG_DEFAULT_HLL_SPARSE_MAX_BYTES 3000 #define CONFIG_DEFAULT_HLL_SPARSE_MAX_BYTES 3000
...@@ -446,8 +446,8 @@ typedef struct redisObject { ...@@ -446,8 +446,8 @@ typedef struct redisObject {
* bug #85 introduced exactly in this way. */ * bug #85 introduced exactly in this way. */
#define initStaticStringObject(_var,_ptr) do { \ #define initStaticStringObject(_var,_ptr) do { \
_var.refcount = 1; \ _var.refcount = 1; \
_var.type = REDIS_STRING; \ _var.type = OBJ_STRING; \
_var.encoding = REDIS_ENCODING_RAW; \ _var.encoding = OBJ_ENCODING_RAW; \
_var.ptr = _ptr; \ _var.ptr = _ptr; \
} while(0); } while(0);
...@@ -1006,8 +1006,8 @@ typedef struct { ...@@ -1006,8 +1006,8 @@ typedef struct {
dictEntry *de; dictEntry *de;
} hashTypeIterator; } hashTypeIterator;
#define REDIS_HASH_KEY 1 #define OBJ_HASH_KEY 1
#define REDIS_HASH_VALUE 2 #define OBJ_HASH_VALUE 2
/*----------------------------------------------------------------------------- /*-----------------------------------------------------------------------------
* Extern declarations * Extern declarations
...@@ -1166,7 +1166,7 @@ int compareStringObjects(robj *a, robj *b); ...@@ -1166,7 +1166,7 @@ int compareStringObjects(robj *a, robj *b);
int collateStringObjects(robj *a, robj *b); int collateStringObjects(robj *a, robj *b);
int equalStringObjects(robj *a, robj *b); int equalStringObjects(robj *a, robj *b);
unsigned long long estimateObjectIdleTime(robj *o); unsigned long long estimateObjectIdleTime(robj *o);
#define sdsEncodedObject(objptr) (objptr->encoding == REDIS_ENCODING_RAW || objptr->encoding == REDIS_ENCODING_EMBSTR) #define sdsEncodedObject(objptr) (objptr->encoding == OBJ_ENCODING_RAW || objptr->encoding == OBJ_ENCODING_EMBSTR)
/* Synchronous I/O with timeout */ /* Synchronous I/O with timeout */
ssize_t syncWrite(int fd, char *ptr, ssize_t size, long long timeout); ssize_t syncWrite(int fd, char *ptr, ssize_t size, long long timeout);
......
...@@ -57,12 +57,12 @@ slowlogEntry *slowlogCreateEntry(robj **argv, int argc, long long duration) { ...@@ -57,12 +57,12 @@ slowlogEntry *slowlogCreateEntry(robj **argv, int argc, long long duration) {
* at SLOWLOG_ENTRY_MAX_ARGC, but use the last argument to specify * at SLOWLOG_ENTRY_MAX_ARGC, but use the last argument to specify
* how many remaining arguments there were in the original command. */ * how many remaining arguments there were in the original command. */
if (slargc != argc && j == slargc-1) { if (slargc != argc && j == slargc-1) {
se->argv[j] = createObject(REDIS_STRING, se->argv[j] = createObject(OBJ_STRING,
sdscatprintf(sdsempty(),"... (%d more arguments)", sdscatprintf(sdsempty(),"... (%d more arguments)",
argc-slargc+1)); argc-slargc+1));
} else { } else {
/* Trim too long strings as well... */ /* Trim too long strings as well... */
if (argv[j]->type == REDIS_STRING && if (argv[j]->type == OBJ_STRING &&
sdsEncodedObject(argv[j]) && sdsEncodedObject(argv[j]) &&
sdslen(argv[j]->ptr) > SLOWLOG_ENTRY_MAX_STRING) sdslen(argv[j]->ptr) > SLOWLOG_ENTRY_MAX_STRING)
{ {
...@@ -71,7 +71,7 @@ slowlogEntry *slowlogCreateEntry(robj **argv, int argc, long long duration) { ...@@ -71,7 +71,7 @@ slowlogEntry *slowlogCreateEntry(robj **argv, int argc, long long duration) {
s = sdscatprintf(s,"... (%lu more bytes)", s = sdscatprintf(s,"... (%lu more bytes)",
(unsigned long) (unsigned long)
sdslen(argv[j]->ptr) - SLOWLOG_ENTRY_MAX_STRING); sdslen(argv[j]->ptr) - SLOWLOG_ENTRY_MAX_STRING);
se->argv[j] = createObject(REDIS_STRING,s); se->argv[j] = createObject(OBJ_STRING,s);
} else { } else {
se->argv[j] = argv[j]; se->argv[j] = argv[j];
incrRefCount(argv[j]); incrRefCount(argv[j]);
......
...@@ -110,13 +110,13 @@ robj *lookupKeyByPattern(redisDb *db, robj *pattern, robj *subst) { ...@@ -110,13 +110,13 @@ robj *lookupKeyByPattern(redisDb *db, robj *pattern, robj *subst) {
if (o == NULL) goto noobj; if (o == NULL) goto noobj;
if (fieldobj) { if (fieldobj) {
if (o->type != REDIS_HASH) goto noobj; if (o->type != OBJ_HASH) goto noobj;
/* Retrieve value from hash by the field name. This operation /* Retrieve value from hash by the field name. This operation
* already increases the refcount of the returned object. */ * already increases the refcount of the returned object. */
o = hashTypeGetObject(o, fieldobj); o = hashTypeGetObject(o, fieldobj);
} else { } else {
if (o->type != REDIS_STRING) goto noobj; if (o->type != OBJ_STRING) goto noobj;
/* Every object that this function returns needs to have its refcount /* Every object that this function returns needs to have its refcount
* increased. sortCommand decreases it again. */ * increased. sortCommand decreases it again. */
...@@ -200,9 +200,9 @@ void sortCommand(client *c) { ...@@ -200,9 +200,9 @@ void sortCommand(client *c) {
/* Lookup the key to sort. It must be of the right types */ /* Lookup the key to sort. It must be of the right types */
sortval = lookupKeyRead(c->db,c->argv[1]); sortval = lookupKeyRead(c->db,c->argv[1]);
if (sortval && sortval->type != REDIS_SET && if (sortval && sortval->type != OBJ_SET &&
sortval->type != REDIS_LIST && sortval->type != OBJ_LIST &&
sortval->type != REDIS_ZSET) sortval->type != OBJ_ZSET)
{ {
addReply(c,shared.wrongtypeerr); addReply(c,shared.wrongtypeerr);
return; return;
...@@ -292,7 +292,7 @@ void sortCommand(client *c) { ...@@ -292,7 +292,7 @@ void sortCommand(client *c) {
* even if no sort order is requested, so they remain stable across * even if no sort order is requested, so they remain stable across
* scripting and replication. */ * scripting and replication. */
if (dontsort && if (dontsort &&
sortval->type == REDIS_SET && sortval->type == OBJ_SET &&
(storekey || c->flags & REDIS_LUA_CLIENT)) (storekey || c->flags & REDIS_LUA_CLIENT))
{ {
/* Force ALPHA sorting */ /* Force ALPHA sorting */
...@@ -302,14 +302,14 @@ void sortCommand(client *c) { ...@@ -302,14 +302,14 @@ void sortCommand(client *c) {
} }
/* Destructively convert encoded sorted sets for SORT. */ /* Destructively convert encoded sorted sets for SORT. */
if (sortval->type == REDIS_ZSET) if (sortval->type == OBJ_ZSET)
zsetConvert(sortval, REDIS_ENCODING_SKIPLIST); zsetConvert(sortval, OBJ_ENCODING_SKIPLIST);
/* Objtain the length of the object to sort. */ /* Objtain the length of the object to sort. */
switch(sortval->type) { switch(sortval->type) {
case REDIS_LIST: vectorlen = listTypeLength(sortval); break; case OBJ_LIST: vectorlen = listTypeLength(sortval); break;
case REDIS_SET: vectorlen = setTypeSize(sortval); break; case OBJ_SET: vectorlen = setTypeSize(sortval); break;
case REDIS_ZSET: vectorlen = dictSize(((zset*)sortval->ptr)->dict); break; case OBJ_ZSET: vectorlen = dictSize(((zset*)sortval->ptr)->dict); break;
default: vectorlen = 0; redisPanic("Bad SORT type"); /* Avoid GCC warning */ default: vectorlen = 0; redisPanic("Bad SORT type"); /* Avoid GCC warning */
} }
...@@ -332,7 +332,7 @@ void sortCommand(client *c) { ...@@ -332,7 +332,7 @@ void sortCommand(client *c) {
* the number of elements to fetch, we also optimize to just load the * the number of elements to fetch, we also optimize to just load the
* range we are interested in and allocating a vector that is big enough * range we are interested in and allocating a vector that is big enough
* for the selected range length. */ * for the selected range length. */
if ((sortval->type == REDIS_ZSET || sortval->type == REDIS_LIST) && if ((sortval->type == OBJ_ZSET || sortval->type == OBJ_LIST) &&
dontsort && dontsort &&
(start != 0 || end != vectorlen-1)) (start != 0 || end != vectorlen-1))
{ {
...@@ -343,7 +343,7 @@ void sortCommand(client *c) { ...@@ -343,7 +343,7 @@ void sortCommand(client *c) {
vector = zmalloc(sizeof(redisSortObject)*vectorlen); vector = zmalloc(sizeof(redisSortObject)*vectorlen);
j = 0; j = 0;
if (sortval->type == REDIS_LIST && dontsort) { if (sortval->type == OBJ_LIST && dontsort) {
/* Special handling for a list, if 'dontsort' is true. /* Special handling for a list, if 'dontsort' is true.
* This makes sure we return elements in the list original * This makes sure we return elements in the list original
* ordering, accordingly to DESC / ASC options. * ordering, accordingly to DESC / ASC options.
...@@ -368,7 +368,7 @@ void sortCommand(client *c) { ...@@ -368,7 +368,7 @@ void sortCommand(client *c) {
end -= start; end -= start;
start = 0; start = 0;
} }
} else if (sortval->type == REDIS_LIST) { } else if (sortval->type == OBJ_LIST) {
listTypeIterator *li = listTypeInitIterator(sortval,0,REDIS_TAIL); listTypeIterator *li = listTypeInitIterator(sortval,0,REDIS_TAIL);
listTypeEntry entry; listTypeEntry entry;
while(listTypeNext(li,&entry)) { while(listTypeNext(li,&entry)) {
...@@ -378,7 +378,7 @@ void sortCommand(client *c) { ...@@ -378,7 +378,7 @@ void sortCommand(client *c) {
j++; j++;
} }
listTypeReleaseIterator(li); listTypeReleaseIterator(li);
} else if (sortval->type == REDIS_SET) { } else if (sortval->type == OBJ_SET) {
setTypeIterator *si = setTypeInitIterator(sortval); setTypeIterator *si = setTypeInitIterator(sortval);
robj *ele; robj *ele;
while((ele = setTypeNextObject(si)) != NULL) { while((ele = setTypeNextObject(si)) != NULL) {
...@@ -388,7 +388,7 @@ void sortCommand(client *c) { ...@@ -388,7 +388,7 @@ void sortCommand(client *c) {
j++; j++;
} }
setTypeReleaseIterator(si); setTypeReleaseIterator(si);
} else if (sortval->type == REDIS_ZSET && dontsort) { } else if (sortval->type == OBJ_ZSET && dontsort) {
/* Special handling for a sorted set, if 'dontsort' is true. /* Special handling for a sorted set, if 'dontsort' is true.
* This makes sure we return elements in the sorted set original * This makes sure we return elements in the sorted set original
* ordering, accordingly to DESC / ASC options. * ordering, accordingly to DESC / ASC options.
...@@ -427,7 +427,7 @@ void sortCommand(client *c) { ...@@ -427,7 +427,7 @@ void sortCommand(client *c) {
/* Fix start/end: output code is not aware of this optimization. */ /* Fix start/end: output code is not aware of this optimization. */
end -= start; end -= start;
start = 0; start = 0;
} else if (sortval->type == REDIS_ZSET) { } else if (sortval->type == OBJ_ZSET) {
dict *set = ((zset*)sortval->ptr)->dict; dict *set = ((zset*)sortval->ptr)->dict;
dictIterator *di; dictIterator *di;
dictEntry *setele; dictEntry *setele;
...@@ -469,7 +469,7 @@ void sortCommand(client *c) { ...@@ -469,7 +469,7 @@ void sortCommand(client *c) {
{ {
int_convertion_error = 1; int_convertion_error = 1;
} }
} else if (byval->encoding == REDIS_ENCODING_INT) { } else if (byval->encoding == OBJ_ENCODING_INT) {
/* Don't need to decode the object if it's /* Don't need to decode the object if it's
* integer-encoded (the only encoding supported) so * integer-encoded (the only encoding supported) so
* far. We can just cast it */ * far. We can just cast it */
...@@ -577,7 +577,7 @@ void sortCommand(client *c) { ...@@ -577,7 +577,7 @@ void sortCommand(client *c) {
} }
/* Cleanup */ /* Cleanup */
if (sortval->type == REDIS_LIST || sortval->type == REDIS_SET) if (sortval->type == OBJ_LIST || sortval->type == OBJ_SET)
for (j = 0; j < vectorlen; j++) for (j = 0; j < vectorlen; j++)
decrRefCount(vector[j].obj); decrRefCount(vector[j].obj);
decrRefCount(sortval); decrRefCount(sortval);
......
...@@ -40,13 +40,13 @@ ...@@ -40,13 +40,13 @@
void hashTypeTryConversion(robj *o, robj **argv, int start, int end) { void hashTypeTryConversion(robj *o, robj **argv, int start, int end) {
int i; int i;
if (o->encoding != REDIS_ENCODING_ZIPLIST) return; if (o->encoding != OBJ_ENCODING_ZIPLIST) return;
for (i = start; i <= end; i++) { for (i = start; i <= end; i++) {
if (sdsEncodedObject(argv[i]) && if (sdsEncodedObject(argv[i]) &&
sdslen(argv[i]->ptr) > server.hash_max_ziplist_value) sdslen(argv[i]->ptr) > server.hash_max_ziplist_value)
{ {
hashTypeConvert(o, REDIS_ENCODING_HT); hashTypeConvert(o, OBJ_ENCODING_HT);
break; break;
} }
} }
...@@ -54,7 +54,7 @@ void hashTypeTryConversion(robj *o, robj **argv, int start, int end) { ...@@ -54,7 +54,7 @@ void hashTypeTryConversion(robj *o, robj **argv, int start, int end) {
/* Encode given objects in-place when the hash uses a dict. */ /* Encode given objects in-place when the hash uses a dict. */
void hashTypeTryObjectEncoding(robj *subject, robj **o1, robj **o2) { void hashTypeTryObjectEncoding(robj *subject, robj **o1, robj **o2) {
if (subject->encoding == REDIS_ENCODING_HT) { if (subject->encoding == OBJ_ENCODING_HT) {
if (o1) *o1 = tryObjectEncoding(*o1); if (o1) *o1 = tryObjectEncoding(*o1);
if (o2) *o2 = tryObjectEncoding(*o2); if (o2) *o2 = tryObjectEncoding(*o2);
} }
...@@ -70,7 +70,7 @@ int hashTypeGetFromZiplist(robj *o, robj *field, ...@@ -70,7 +70,7 @@ int hashTypeGetFromZiplist(robj *o, robj *field,
unsigned char *zl, *fptr = NULL, *vptr = NULL; unsigned char *zl, *fptr = NULL, *vptr = NULL;
int ret; int ret;
redisAssert(o->encoding == REDIS_ENCODING_ZIPLIST); redisAssert(o->encoding == OBJ_ENCODING_ZIPLIST);
field = getDecodedObject(field); field = getDecodedObject(field);
...@@ -101,7 +101,7 @@ int hashTypeGetFromZiplist(robj *o, robj *field, ...@@ -101,7 +101,7 @@ int hashTypeGetFromZiplist(robj *o, robj *field,
int hashTypeGetFromHashTable(robj *o, robj *field, robj **value) { int hashTypeGetFromHashTable(robj *o, robj *field, robj **value) {
dictEntry *de; dictEntry *de;
redisAssert(o->encoding == REDIS_ENCODING_HT); redisAssert(o->encoding == OBJ_ENCODING_HT);
de = dictFind(o->ptr, field); de = dictFind(o->ptr, field);
if (de == NULL) return -1; if (de == NULL) return -1;
...@@ -118,7 +118,7 @@ int hashTypeGetFromHashTable(robj *o, robj *field, robj **value) { ...@@ -118,7 +118,7 @@ int hashTypeGetFromHashTable(robj *o, robj *field, robj **value) {
robj *hashTypeGetObject(robj *o, robj *field) { robj *hashTypeGetObject(robj *o, robj *field) {
robj *value = NULL; robj *value = NULL;
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
unsigned int vlen = UINT_MAX; unsigned int vlen = UINT_MAX;
long long vll = LLONG_MAX; long long vll = LLONG_MAX;
...@@ -130,7 +130,7 @@ robj *hashTypeGetObject(robj *o, robj *field) { ...@@ -130,7 +130,7 @@ robj *hashTypeGetObject(robj *o, robj *field) {
value = createStringObjectFromLongLong(vll); value = createStringObjectFromLongLong(vll);
} }
} }
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
robj *aux; robj *aux;
if (hashTypeGetFromHashTable(o, field, &aux) == 0) { if (hashTypeGetFromHashTable(o, field, &aux) == 0) {
...@@ -148,14 +148,14 @@ robj *hashTypeGetObject(robj *o, robj *field) { ...@@ -148,14 +148,14 @@ robj *hashTypeGetObject(robj *o, robj *field) {
* exist. */ * exist. */
size_t hashTypeGetValueLength(robj *o, robj *field) { size_t hashTypeGetValueLength(robj *o, robj *field) {
size_t len = 0; size_t len = 0;
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
unsigned int vlen = UINT_MAX; unsigned int vlen = UINT_MAX;
long long vll = LLONG_MAX; long long vll = LLONG_MAX;
if (hashTypeGetFromZiplist(o, field, &vstr, &vlen, &vll) == 0) if (hashTypeGetFromZiplist(o, field, &vstr, &vlen, &vll) == 0)
len = vstr ? vlen : sdigits10(vll); len = vstr ? vlen : sdigits10(vll);
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
robj *aux; robj *aux;
if (hashTypeGetFromHashTable(o, field, &aux) == 0) if (hashTypeGetFromHashTable(o, field, &aux) == 0)
...@@ -169,13 +169,13 @@ size_t hashTypeGetValueLength(robj *o, robj *field) { ...@@ -169,13 +169,13 @@ size_t hashTypeGetValueLength(robj *o, robj *field) {
/* Test if the specified field exists in the given hash. Returns 1 if the field /* Test if the specified field exists in the given hash. Returns 1 if the field
* exists, and 0 when it doesn't. */ * exists, and 0 when it doesn't. */
int hashTypeExists(robj *o, robj *field) { int hashTypeExists(robj *o, robj *field) {
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
unsigned int vlen = UINT_MAX; unsigned int vlen = UINT_MAX;
long long vll = LLONG_MAX; long long vll = LLONG_MAX;
if (hashTypeGetFromZiplist(o, field, &vstr, &vlen, &vll) == 0) return 1; if (hashTypeGetFromZiplist(o, field, &vstr, &vlen, &vll) == 0) return 1;
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
robj *aux; robj *aux;
if (hashTypeGetFromHashTable(o, field, &aux) == 0) return 1; if (hashTypeGetFromHashTable(o, field, &aux) == 0) return 1;
...@@ -192,7 +192,7 @@ int hashTypeExists(robj *o, robj *field) { ...@@ -192,7 +192,7 @@ int hashTypeExists(robj *o, robj *field) {
int hashTypeSet(robj *o, robj *field, robj *value) { int hashTypeSet(robj *o, robj *field, robj *value) {
int update = 0; int update = 0;
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *zl, *fptr, *vptr; unsigned char *zl, *fptr, *vptr;
field = getDecodedObject(field); field = getDecodedObject(field);
...@@ -227,8 +227,8 @@ int hashTypeSet(robj *o, robj *field, robj *value) { ...@@ -227,8 +227,8 @@ int hashTypeSet(robj *o, robj *field, robj *value) {
/* Check if the ziplist needs to be converted to a hash table */ /* Check if the ziplist needs to be converted to a hash table */
if (hashTypeLength(o) > server.hash_max_ziplist_entries) if (hashTypeLength(o) > server.hash_max_ziplist_entries)
hashTypeConvert(o, REDIS_ENCODING_HT); hashTypeConvert(o, OBJ_ENCODING_HT);
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
if (dictReplace(o->ptr, field, value)) { /* Insert */ if (dictReplace(o->ptr, field, value)) { /* Insert */
incrRefCount(field); incrRefCount(field);
} else { /* Update */ } else { /* Update */
...@@ -246,7 +246,7 @@ int hashTypeSet(robj *o, robj *field, robj *value) { ...@@ -246,7 +246,7 @@ int hashTypeSet(robj *o, robj *field, robj *value) {
int hashTypeDelete(robj *o, robj *field) { int hashTypeDelete(robj *o, robj *field) {
int deleted = 0; int deleted = 0;
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *zl, *fptr; unsigned char *zl, *fptr;
field = getDecodedObject(field); field = getDecodedObject(field);
...@@ -265,7 +265,7 @@ int hashTypeDelete(robj *o, robj *field) { ...@@ -265,7 +265,7 @@ int hashTypeDelete(robj *o, robj *field) {
decrRefCount(field); decrRefCount(field);
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
if (dictDelete((dict*)o->ptr, field) == REDIS_OK) { if (dictDelete((dict*)o->ptr, field) == REDIS_OK) {
deleted = 1; deleted = 1;
...@@ -284,9 +284,9 @@ int hashTypeDelete(robj *o, robj *field) { ...@@ -284,9 +284,9 @@ int hashTypeDelete(robj *o, robj *field) {
unsigned long hashTypeLength(robj *o) { unsigned long hashTypeLength(robj *o) {
unsigned long length = ULONG_MAX; unsigned long length = ULONG_MAX;
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
length = ziplistLen(o->ptr) / 2; length = ziplistLen(o->ptr) / 2;
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
length = dictSize((dict*)o->ptr); length = dictSize((dict*)o->ptr);
} else { } else {
redisPanic("Unknown hash encoding"); redisPanic("Unknown hash encoding");
...@@ -300,10 +300,10 @@ hashTypeIterator *hashTypeInitIterator(robj *subject) { ...@@ -300,10 +300,10 @@ hashTypeIterator *hashTypeInitIterator(robj *subject) {
hi->subject = subject; hi->subject = subject;
hi->encoding = subject->encoding; hi->encoding = subject->encoding;
if (hi->encoding == REDIS_ENCODING_ZIPLIST) { if (hi->encoding == OBJ_ENCODING_ZIPLIST) {
hi->fptr = NULL; hi->fptr = NULL;
hi->vptr = NULL; hi->vptr = NULL;
} else if (hi->encoding == REDIS_ENCODING_HT) { } else if (hi->encoding == OBJ_ENCODING_HT) {
hi->di = dictGetIterator(subject->ptr); hi->di = dictGetIterator(subject->ptr);
} else { } else {
redisPanic("Unknown hash encoding"); redisPanic("Unknown hash encoding");
...@@ -313,7 +313,7 @@ hashTypeIterator *hashTypeInitIterator(robj *subject) { ...@@ -313,7 +313,7 @@ hashTypeIterator *hashTypeInitIterator(robj *subject) {
} }
void hashTypeReleaseIterator(hashTypeIterator *hi) { void hashTypeReleaseIterator(hashTypeIterator *hi) {
if (hi->encoding == REDIS_ENCODING_HT) { if (hi->encoding == OBJ_ENCODING_HT) {
dictReleaseIterator(hi->di); dictReleaseIterator(hi->di);
} }
...@@ -323,7 +323,7 @@ void hashTypeReleaseIterator(hashTypeIterator *hi) { ...@@ -323,7 +323,7 @@ void hashTypeReleaseIterator(hashTypeIterator *hi) {
/* Move to the next entry in the hash. Return REDIS_OK when the next entry /* Move to the next entry in the hash. Return REDIS_OK when the next entry
* could be found and REDIS_ERR when the iterator reaches the end. */ * could be found and REDIS_ERR when the iterator reaches the end. */
int hashTypeNext(hashTypeIterator *hi) { int hashTypeNext(hashTypeIterator *hi) {
if (hi->encoding == REDIS_ENCODING_ZIPLIST) { if (hi->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *zl; unsigned char *zl;
unsigned char *fptr, *vptr; unsigned char *fptr, *vptr;
...@@ -349,7 +349,7 @@ int hashTypeNext(hashTypeIterator *hi) { ...@@ -349,7 +349,7 @@ int hashTypeNext(hashTypeIterator *hi) {
/* fptr, vptr now point to the first or next pair */ /* fptr, vptr now point to the first or next pair */
hi->fptr = fptr; hi->fptr = fptr;
hi->vptr = vptr; hi->vptr = vptr;
} else if (hi->encoding == REDIS_ENCODING_HT) { } else if (hi->encoding == OBJ_ENCODING_HT) {
if ((hi->de = dictNext(hi->di)) == NULL) return REDIS_ERR; if ((hi->de = dictNext(hi->di)) == NULL) return REDIS_ERR;
} else { } else {
redisPanic("Unknown hash encoding"); redisPanic("Unknown hash encoding");
...@@ -366,9 +366,9 @@ void hashTypeCurrentFromZiplist(hashTypeIterator *hi, int what, ...@@ -366,9 +366,9 @@ void hashTypeCurrentFromZiplist(hashTypeIterator *hi, int what,
{ {
int ret; int ret;
redisAssert(hi->encoding == REDIS_ENCODING_ZIPLIST); redisAssert(hi->encoding == OBJ_ENCODING_ZIPLIST);
if (what & REDIS_HASH_KEY) { if (what & OBJ_HASH_KEY) {
ret = ziplistGet(hi->fptr, vstr, vlen, vll); ret = ziplistGet(hi->fptr, vstr, vlen, vll);
redisAssert(ret); redisAssert(ret);
} else { } else {
...@@ -380,9 +380,9 @@ void hashTypeCurrentFromZiplist(hashTypeIterator *hi, int what, ...@@ -380,9 +380,9 @@ void hashTypeCurrentFromZiplist(hashTypeIterator *hi, int what,
/* Get the field or value at iterator cursor, for an iterator on a hash value /* Get the field or value at iterator cursor, for an iterator on a hash value
* encoded as a ziplist. Prototype is similar to `hashTypeGetFromHashTable`. */ * encoded as a ziplist. Prototype is similar to `hashTypeGetFromHashTable`. */
void hashTypeCurrentFromHashTable(hashTypeIterator *hi, int what, robj **dst) { void hashTypeCurrentFromHashTable(hashTypeIterator *hi, int what, robj **dst) {
redisAssert(hi->encoding == REDIS_ENCODING_HT); redisAssert(hi->encoding == OBJ_ENCODING_HT);
if (what & REDIS_HASH_KEY) { if (what & OBJ_HASH_KEY) {
*dst = dictGetKey(hi->de); *dst = dictGetKey(hi->de);
} else { } else {
*dst = dictGetVal(hi->de); *dst = dictGetVal(hi->de);
...@@ -395,7 +395,7 @@ void hashTypeCurrentFromHashTable(hashTypeIterator *hi, int what, robj **dst) { ...@@ -395,7 +395,7 @@ void hashTypeCurrentFromHashTable(hashTypeIterator *hi, int what, robj **dst) {
robj *hashTypeCurrentObject(hashTypeIterator *hi, int what) { robj *hashTypeCurrentObject(hashTypeIterator *hi, int what) {
robj *dst; robj *dst;
if (hi->encoding == REDIS_ENCODING_ZIPLIST) { if (hi->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
unsigned int vlen = UINT_MAX; unsigned int vlen = UINT_MAX;
long long vll = LLONG_MAX; long long vll = LLONG_MAX;
...@@ -406,7 +406,7 @@ robj *hashTypeCurrentObject(hashTypeIterator *hi, int what) { ...@@ -406,7 +406,7 @@ robj *hashTypeCurrentObject(hashTypeIterator *hi, int what) {
} else { } else {
dst = createStringObjectFromLongLong(vll); dst = createStringObjectFromLongLong(vll);
} }
} else if (hi->encoding == REDIS_ENCODING_HT) { } else if (hi->encoding == OBJ_ENCODING_HT) {
hashTypeCurrentFromHashTable(hi, what, &dst); hashTypeCurrentFromHashTable(hi, what, &dst);
incrRefCount(dst); incrRefCount(dst);
} else { } else {
...@@ -421,7 +421,7 @@ robj *hashTypeLookupWriteOrCreate(client *c, robj *key) { ...@@ -421,7 +421,7 @@ robj *hashTypeLookupWriteOrCreate(client *c, robj *key) {
o = createHashObject(); o = createHashObject();
dbAdd(c->db,key,o); dbAdd(c->db,key,o);
} else { } else {
if (o->type != REDIS_HASH) { if (o->type != OBJ_HASH) {
addReply(c,shared.wrongtypeerr); addReply(c,shared.wrongtypeerr);
return NULL; return NULL;
} }
...@@ -430,12 +430,12 @@ robj *hashTypeLookupWriteOrCreate(client *c, robj *key) { ...@@ -430,12 +430,12 @@ robj *hashTypeLookupWriteOrCreate(client *c, robj *key) {
} }
void hashTypeConvertZiplist(robj *o, int enc) { void hashTypeConvertZiplist(robj *o, int enc) {
redisAssert(o->encoding == REDIS_ENCODING_ZIPLIST); redisAssert(o->encoding == OBJ_ENCODING_ZIPLIST);
if (enc == REDIS_ENCODING_ZIPLIST) { if (enc == OBJ_ENCODING_ZIPLIST) {
/* Nothing to do... */ /* Nothing to do... */
} else if (enc == REDIS_ENCODING_HT) { } else if (enc == OBJ_ENCODING_HT) {
hashTypeIterator *hi; hashTypeIterator *hi;
dict *dict; dict *dict;
int ret; int ret;
...@@ -446,9 +446,9 @@ void hashTypeConvertZiplist(robj *o, int enc) { ...@@ -446,9 +446,9 @@ void hashTypeConvertZiplist(robj *o, int enc) {
while (hashTypeNext(hi) != REDIS_ERR) { while (hashTypeNext(hi) != REDIS_ERR) {
robj *field, *value; robj *field, *value;
field = hashTypeCurrentObject(hi, REDIS_HASH_KEY); field = hashTypeCurrentObject(hi, OBJ_HASH_KEY);
field = tryObjectEncoding(field); field = tryObjectEncoding(field);
value = hashTypeCurrentObject(hi, REDIS_HASH_VALUE); value = hashTypeCurrentObject(hi, OBJ_HASH_VALUE);
value = tryObjectEncoding(value); value = tryObjectEncoding(value);
ret = dictAdd(dict, field, value); ret = dictAdd(dict, field, value);
if (ret != DICT_OK) { if (ret != DICT_OK) {
...@@ -461,7 +461,7 @@ void hashTypeConvertZiplist(robj *o, int enc) { ...@@ -461,7 +461,7 @@ void hashTypeConvertZiplist(robj *o, int enc) {
hashTypeReleaseIterator(hi); hashTypeReleaseIterator(hi);
zfree(o->ptr); zfree(o->ptr);
o->encoding = REDIS_ENCODING_HT; o->encoding = OBJ_ENCODING_HT;
o->ptr = dict; o->ptr = dict;
} else { } else {
...@@ -470,9 +470,9 @@ void hashTypeConvertZiplist(robj *o, int enc) { ...@@ -470,9 +470,9 @@ void hashTypeConvertZiplist(robj *o, int enc) {
} }
void hashTypeConvert(robj *o, int enc) { void hashTypeConvert(robj *o, int enc) {
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
hashTypeConvertZiplist(o, enc); hashTypeConvertZiplist(o, enc);
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
redisPanic("Not implemented"); redisPanic("Not implemented");
} else { } else {
redisPanic("Unknown hash encoding"); redisPanic("Unknown hash encoding");
...@@ -613,7 +613,7 @@ static void addHashFieldToReply(client *c, robj *o, robj *field) { ...@@ -613,7 +613,7 @@ static void addHashFieldToReply(client *c, robj *o, robj *field) {
return; return;
} }
if (o->encoding == REDIS_ENCODING_ZIPLIST) { if (o->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
unsigned int vlen = UINT_MAX; unsigned int vlen = UINT_MAX;
long long vll = LLONG_MAX; long long vll = LLONG_MAX;
...@@ -629,7 +629,7 @@ static void addHashFieldToReply(client *c, robj *o, robj *field) { ...@@ -629,7 +629,7 @@ static void addHashFieldToReply(client *c, robj *o, robj *field) {
} }
} }
} else if (o->encoding == REDIS_ENCODING_HT) { } else if (o->encoding == OBJ_ENCODING_HT) {
robj *value; robj *value;
ret = hashTypeGetFromHashTable(o, field, &value); ret = hashTypeGetFromHashTable(o, field, &value);
...@@ -648,7 +648,7 @@ void hgetCommand(client *c) { ...@@ -648,7 +648,7 @@ void hgetCommand(client *c) {
robj *o; robj *o;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.nullbulk)) == NULL || if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.nullbulk)) == NULL ||
checkType(c,o,REDIS_HASH)) return; checkType(c,o,OBJ_HASH)) return;
addHashFieldToReply(c, o, c->argv[2]); addHashFieldToReply(c, o, c->argv[2]);
} }
...@@ -660,7 +660,7 @@ void hmgetCommand(client *c) { ...@@ -660,7 +660,7 @@ void hmgetCommand(client *c) {
/* Don't abort when the key cannot be found. Non-existing keys are empty /* Don't abort when the key cannot be found. Non-existing keys are empty
* hashes, where HMGET should respond with a series of null bulks. */ * hashes, where HMGET should respond with a series of null bulks. */
o = lookupKeyRead(c->db, c->argv[1]); o = lookupKeyRead(c->db, c->argv[1]);
if (o != NULL && o->type != REDIS_HASH) { if (o != NULL && o->type != OBJ_HASH) {
addReply(c, shared.wrongtypeerr); addReply(c, shared.wrongtypeerr);
return; return;
} }
...@@ -676,7 +676,7 @@ void hdelCommand(client *c) { ...@@ -676,7 +676,7 @@ void hdelCommand(client *c) {
int j, deleted = 0, keyremoved = 0; int j, deleted = 0, keyremoved = 0;
if ((o = lookupKeyWriteOrReply(c,c->argv[1],shared.czero)) == NULL || if ((o = lookupKeyWriteOrReply(c,c->argv[1],shared.czero)) == NULL ||
checkType(c,o,REDIS_HASH)) return; checkType(c,o,OBJ_HASH)) return;
for (j = 2; j < c->argc; j++) { for (j = 2; j < c->argc; j++) {
if (hashTypeDelete(o,c->argv[j])) { if (hashTypeDelete(o,c->argv[j])) {
...@@ -703,7 +703,7 @@ void hlenCommand(client *c) { ...@@ -703,7 +703,7 @@ void hlenCommand(client *c) {
robj *o; robj *o;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL || if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL ||
checkType(c,o,REDIS_HASH)) return; checkType(c,o,OBJ_HASH)) return;
addReplyLongLong(c,hashTypeLength(o)); addReplyLongLong(c,hashTypeLength(o));
} }
...@@ -712,12 +712,12 @@ void hstrlenCommand(client *c) { ...@@ -712,12 +712,12 @@ void hstrlenCommand(client *c) {
robj *o; robj *o;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL || if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL ||
checkType(c,o,REDIS_HASH)) return; checkType(c,o,OBJ_HASH)) return;
addReplyLongLong(c,hashTypeGetValueLength(o,c->argv[2])); addReplyLongLong(c,hashTypeGetValueLength(o,c->argv[2]));
} }
static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi, int what) { static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi, int what) {
if (hi->encoding == REDIS_ENCODING_ZIPLIST) { if (hi->encoding == OBJ_ENCODING_ZIPLIST) {
unsigned char *vstr = NULL; unsigned char *vstr = NULL;
unsigned int vlen = UINT_MAX; unsigned int vlen = UINT_MAX;
long long vll = LLONG_MAX; long long vll = LLONG_MAX;
...@@ -729,7 +729,7 @@ static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi, int wh ...@@ -729,7 +729,7 @@ static void addHashIteratorCursorToReply(client *c, hashTypeIterator *hi, int wh
addReplyBulkLongLong(c, vll); addReplyBulkLongLong(c, vll);
} }
} else if (hi->encoding == REDIS_ENCODING_HT) { } else if (hi->encoding == OBJ_ENCODING_HT) {
robj *value; robj *value;
hashTypeCurrentFromHashTable(hi, what, &value); hashTypeCurrentFromHashTable(hi, what, &value);
...@@ -747,22 +747,22 @@ void genericHgetallCommand(client *c, int flags) { ...@@ -747,22 +747,22 @@ void genericHgetallCommand(client *c, int flags) {
int length, count = 0; int length, count = 0;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.emptymultibulk)) == NULL if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.emptymultibulk)) == NULL
|| checkType(c,o,REDIS_HASH)) return; || checkType(c,o,OBJ_HASH)) return;
if (flags & REDIS_HASH_KEY) multiplier++; if (flags & OBJ_HASH_KEY) multiplier++;
if (flags & REDIS_HASH_VALUE) multiplier++; if (flags & OBJ_HASH_VALUE) multiplier++;
length = hashTypeLength(o) * multiplier; length = hashTypeLength(o) * multiplier;
addReplyMultiBulkLen(c, length); addReplyMultiBulkLen(c, length);
hi = hashTypeInitIterator(o); hi = hashTypeInitIterator(o);
while (hashTypeNext(hi) != REDIS_ERR) { while (hashTypeNext(hi) != REDIS_ERR) {
if (flags & REDIS_HASH_KEY) { if (flags & OBJ_HASH_KEY) {
addHashIteratorCursorToReply(c, hi, REDIS_HASH_KEY); addHashIteratorCursorToReply(c, hi, OBJ_HASH_KEY);
count++; count++;
} }
if (flags & REDIS_HASH_VALUE) { if (flags & OBJ_HASH_VALUE) {
addHashIteratorCursorToReply(c, hi, REDIS_HASH_VALUE); addHashIteratorCursorToReply(c, hi, OBJ_HASH_VALUE);
count++; count++;
} }
} }
...@@ -772,21 +772,21 @@ void genericHgetallCommand(client *c, int flags) { ...@@ -772,21 +772,21 @@ void genericHgetallCommand(client *c, int flags) {
} }
void hkeysCommand(client *c) { void hkeysCommand(client *c) {
genericHgetallCommand(c,REDIS_HASH_KEY); genericHgetallCommand(c,OBJ_HASH_KEY);
} }
void hvalsCommand(client *c) { void hvalsCommand(client *c) {
genericHgetallCommand(c,REDIS_HASH_VALUE); genericHgetallCommand(c,OBJ_HASH_VALUE);
} }
void hgetallCommand(client *c) { void hgetallCommand(client *c) {
genericHgetallCommand(c,REDIS_HASH_KEY|REDIS_HASH_VALUE); genericHgetallCommand(c,OBJ_HASH_KEY|OBJ_HASH_VALUE);
} }
void hexistsCommand(client *c) { void hexistsCommand(client *c) {
robj *o; robj *o;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL || if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.czero)) == NULL ||
checkType(c,o,REDIS_HASH)) return; checkType(c,o,OBJ_HASH)) return;
addReply(c, hashTypeExists(o,c->argv[2]) ? shared.cone : shared.czero); addReply(c, hashTypeExists(o,c->argv[2]) ? shared.cone : shared.czero);
} }
...@@ -797,6 +797,6 @@ void hscanCommand(client *c) { ...@@ -797,6 +797,6 @@ void hscanCommand(client *c) {
if (parseScanCursorOrReply(c,c->argv[2],&cursor) == REDIS_ERR) return; if (parseScanCursorOrReply(c,c->argv[2],&cursor) == REDIS_ERR) return;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.emptyscan)) == NULL || if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.emptyscan)) == NULL ||
checkType(c,o,REDIS_HASH)) return; checkType(c,o,OBJ_HASH)) return;
scanGenericCommand(c,o,cursor); scanGenericCommand(c,o,cursor);
} }
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
* There is no need for the caller to increment the refcount of 'value' as * There is no need for the caller to increment the refcount of 'value' as
* the function takes care of it if needed. */ * the function takes care of it if needed. */
void listTypePush(robj *subject, robj *value, int where) { void listTypePush(robj *subject, robj *value, int where) {
if (subject->encoding == REDIS_ENCODING_QUICKLIST) { if (subject->encoding == OBJ_ENCODING_QUICKLIST) {
int pos = (where == REDIS_HEAD) ? QUICKLIST_HEAD : QUICKLIST_TAIL; int pos = (where == REDIS_HEAD) ? QUICKLIST_HEAD : QUICKLIST_TAIL;
value = getDecodedObject(value); value = getDecodedObject(value);
size_t len = sdslen(value->ptr); size_t len = sdslen(value->ptr);
...@@ -59,7 +59,7 @@ robj *listTypePop(robj *subject, int where) { ...@@ -59,7 +59,7 @@ robj *listTypePop(robj *subject, int where) {
robj *value = NULL; robj *value = NULL;
int ql_where = where == REDIS_HEAD ? QUICKLIST_HEAD : QUICKLIST_TAIL; int ql_where = where == REDIS_HEAD ? QUICKLIST_HEAD : QUICKLIST_TAIL;
if (subject->encoding == REDIS_ENCODING_QUICKLIST) { if (subject->encoding == OBJ_ENCODING_QUICKLIST) {
if (quicklistPopCustom(subject->ptr, ql_where, (unsigned char **)&value, if (quicklistPopCustom(subject->ptr, ql_where, (unsigned char **)&value,
NULL, &vlong, listPopSaver)) { NULL, &vlong, listPopSaver)) {
if (!value) if (!value)
...@@ -72,7 +72,7 @@ robj *listTypePop(robj *subject, int where) { ...@@ -72,7 +72,7 @@ robj *listTypePop(robj *subject, int where) {
} }
unsigned long listTypeLength(robj *subject) { unsigned long listTypeLength(robj *subject) {
if (subject->encoding == REDIS_ENCODING_QUICKLIST) { if (subject->encoding == OBJ_ENCODING_QUICKLIST) {
return quicklistCount(subject->ptr); return quicklistCount(subject->ptr);
} else { } else {
redisPanic("Unknown list encoding"); redisPanic("Unknown list encoding");
...@@ -91,7 +91,7 @@ listTypeIterator *listTypeInitIterator(robj *subject, long index, ...@@ -91,7 +91,7 @@ listTypeIterator *listTypeInitIterator(robj *subject, long index,
* REDIS_TAIL means start at HEAD and move *towards tail. */ * REDIS_TAIL means start at HEAD and move *towards tail. */
int iter_direction = int iter_direction =
direction == REDIS_HEAD ? AL_START_TAIL : AL_START_HEAD; direction == REDIS_HEAD ? AL_START_TAIL : AL_START_HEAD;
if (li->encoding == REDIS_ENCODING_QUICKLIST) { if (li->encoding == OBJ_ENCODING_QUICKLIST) {
li->iter = quicklistGetIteratorAtIdx(li->subject->ptr, li->iter = quicklistGetIteratorAtIdx(li->subject->ptr,
iter_direction, index); iter_direction, index);
} else { } else {
...@@ -114,7 +114,7 @@ int listTypeNext(listTypeIterator *li, listTypeEntry *entry) { ...@@ -114,7 +114,7 @@ int listTypeNext(listTypeIterator *li, listTypeEntry *entry) {
redisAssert(li->subject->encoding == li->encoding); redisAssert(li->subject->encoding == li->encoding);
entry->li = li; entry->li = li;
if (li->encoding == REDIS_ENCODING_QUICKLIST) { if (li->encoding == OBJ_ENCODING_QUICKLIST) {
return quicklistNext(li->iter, &entry->entry); return quicklistNext(li->iter, &entry->entry);
} else { } else {
redisPanic("Unknown list encoding"); redisPanic("Unknown list encoding");
...@@ -125,7 +125,7 @@ int listTypeNext(listTypeIterator *li, listTypeEntry *entry) { ...@@ -125,7 +125,7 @@ int listTypeNext(listTypeIterator *li, listTypeEntry *entry) {
/* Return entry or NULL at the current position of the iterator. */ /* Return entry or NULL at the current position of the iterator. */
robj *listTypeGet(listTypeEntry *entry) { robj *listTypeGet(listTypeEntry *entry) {
robj *value = NULL; robj *value = NULL;
if (entry->li->encoding == REDIS_ENCODING_QUICKLIST) { if (entry->li->encoding == OBJ_ENCODING_QUICKLIST) {
if (entry->entry.value) { if (entry->entry.value) {
value = createStringObject((char *)entry->entry.value, value = createStringObject((char *)entry->entry.value,
entry->entry.sz); entry->entry.sz);
...@@ -139,7 +139,7 @@ robj *listTypeGet(listTypeEntry *entry) { ...@@ -139,7 +139,7 @@ robj *listTypeGet(listTypeEntry *entry) {
} }
void listTypeInsert(listTypeEntry *entry, robj *value, int where) { void listTypeInsert(listTypeEntry *entry, robj *value, int where) {
if (entry->li->encoding == REDIS_ENCODING_QUICKLIST) { if (entry->li->encoding == OBJ_ENCODING_QUICKLIST) {
value = getDecodedObject(value); value = getDecodedObject(value);
sds str = value->ptr; sds str = value->ptr;
size_t len = sdslen(str); size_t len = sdslen(str);
...@@ -158,7 +158,7 @@ void listTypeInsert(listTypeEntry *entry, robj *value, int where) { ...@@ -158,7 +158,7 @@ void listTypeInsert(listTypeEntry *entry, robj *value, int where) {
/* Compare the given object with the entry at the current position. */ /* Compare the given object with the entry at the current position. */
int listTypeEqual(listTypeEntry *entry, robj *o) { int listTypeEqual(listTypeEntry *entry, robj *o) {
if (entry->li->encoding == REDIS_ENCODING_QUICKLIST) { if (entry->li->encoding == OBJ_ENCODING_QUICKLIST) {
redisAssertWithInfo(NULL,o,sdsEncodedObject(o)); redisAssertWithInfo(NULL,o,sdsEncodedObject(o));
return quicklistCompare(entry->entry.zi,o->ptr,sdslen(o->ptr)); return quicklistCompare(entry->entry.zi,o->ptr,sdslen(o->ptr));
} else { } else {
...@@ -168,7 +168,7 @@ int listTypeEqual(listTypeEntry *entry, robj *o) { ...@@ -168,7 +168,7 @@ int listTypeEqual(listTypeEntry *entry, robj *o) {
/* Delete the element pointed to. */ /* Delete the element pointed to. */
void listTypeDelete(listTypeIterator *iter, listTypeEntry *entry) { void listTypeDelete(listTypeIterator *iter, listTypeEntry *entry) {
if (entry->li->encoding == REDIS_ENCODING_QUICKLIST) { if (entry->li->encoding == OBJ_ENCODING_QUICKLIST) {
quicklistDelEntry(iter->iter, &entry->entry); quicklistDelEntry(iter->iter, &entry->entry);
} else { } else {
redisPanic("Unknown list encoding"); redisPanic("Unknown list encoding");
...@@ -177,14 +177,14 @@ void listTypeDelete(listTypeIterator *iter, listTypeEntry *entry) { ...@@ -177,14 +177,14 @@ void listTypeDelete(listTypeIterator *iter, listTypeEntry *entry) {
/* Create a quicklist from a single ziplist */ /* Create a quicklist from a single ziplist */
void listTypeConvert(robj *subject, int enc) { void listTypeConvert(robj *subject, int enc) {
redisAssertWithInfo(NULL,subject,subject->type==REDIS_LIST); redisAssertWithInfo(NULL,subject,subject->type==OBJ_LIST);
redisAssertWithInfo(NULL,subject,subject->encoding==REDIS_ENCODING_ZIPLIST); redisAssertWithInfo(NULL,subject,subject->encoding==OBJ_ENCODING_ZIPLIST);
if (enc == REDIS_ENCODING_QUICKLIST) { if (enc == OBJ_ENCODING_QUICKLIST) {
size_t zlen = server.list_max_ziplist_size; size_t zlen = server.list_max_ziplist_size;
int depth = server.list_compress_depth; int depth = server.list_compress_depth;
subject->ptr = quicklistCreateFromZiplist(zlen, depth, subject->ptr); subject->ptr = quicklistCreateFromZiplist(zlen, depth, subject->ptr);
subject->encoding = REDIS_ENCODING_QUICKLIST; subject->encoding = OBJ_ENCODING_QUICKLIST;
} else { } else {
redisPanic("Unsupported list conversion"); redisPanic("Unsupported list conversion");
} }
...@@ -198,7 +198,7 @@ void pushGenericCommand(client *c, int where) { ...@@ -198,7 +198,7 @@ void pushGenericCommand(client *c, int where) {
int j, waiting = 0, pushed = 0; int j, waiting = 0, pushed = 0;
robj *lobj = lookupKeyWrite(c->db,c->argv[1]); robj *lobj = lookupKeyWrite(c->db,c->argv[1]);
if (lobj && lobj->type != REDIS_LIST) { if (lobj && lobj->type != OBJ_LIST) {
addReply(c,shared.wrongtypeerr); addReply(c,shared.wrongtypeerr);
return; return;
} }
...@@ -239,7 +239,7 @@ void pushxGenericCommand(client *c, robj *refval, robj *val, int where) { ...@@ -239,7 +239,7 @@ void pushxGenericCommand(client *c, robj *refval, robj *val, int where) {
int inserted = 0; int inserted = 0;
if ((subject = lookupKeyWriteOrReply(c,c->argv[1],shared.czero)) == NULL || if ((subject = lookupKeyWriteOrReply(c,c->argv[1],shared.czero)) == NULL ||
checkType(c,subject,REDIS_LIST)) return; checkType(c,subject,OBJ_LIST)) return;
if (refval != NULL) { if (refval != NULL) {
/* Seek refval from head to tail */ /* Seek refval from head to tail */
...@@ -298,20 +298,20 @@ void linsertCommand(client *c) { ...@@ -298,20 +298,20 @@ void linsertCommand(client *c) {
void llenCommand(client *c) { void llenCommand(client *c) {
robj *o = lookupKeyReadOrReply(c,c->argv[1],shared.czero); robj *o = lookupKeyReadOrReply(c,c->argv[1],shared.czero);
if (o == NULL || checkType(c,o,REDIS_LIST)) return; if (o == NULL || checkType(c,o,OBJ_LIST)) return;
addReplyLongLong(c,listTypeLength(o)); addReplyLongLong(c,listTypeLength(o));
} }
void lindexCommand(client *c) { void lindexCommand(client *c) {
robj *o = lookupKeyReadOrReply(c,c->argv[1],shared.nullbulk); robj *o = lookupKeyReadOrReply(c,c->argv[1],shared.nullbulk);
if (o == NULL || checkType(c,o,REDIS_LIST)) return; if (o == NULL || checkType(c,o,OBJ_LIST)) return;
long index; long index;
robj *value = NULL; robj *value = NULL;
if ((getLongFromObjectOrReply(c, c->argv[2], &index, NULL) != REDIS_OK)) if ((getLongFromObjectOrReply(c, c->argv[2], &index, NULL) != REDIS_OK))
return; return;
if (o->encoding == REDIS_ENCODING_QUICKLIST) { if (o->encoding == OBJ_ENCODING_QUICKLIST) {
quicklistEntry entry; quicklistEntry entry;
if (quicklistIndex(o->ptr, index, &entry)) { if (quicklistIndex(o->ptr, index, &entry)) {
if (entry.value) { if (entry.value) {
...@@ -331,14 +331,14 @@ void lindexCommand(client *c) { ...@@ -331,14 +331,14 @@ void lindexCommand(client *c) {
void lsetCommand(client *c) { void lsetCommand(client *c) {
robj *o = lookupKeyWriteOrReply(c,c->argv[1],shared.nokeyerr); robj *o = lookupKeyWriteOrReply(c,c->argv[1],shared.nokeyerr);
if (o == NULL || checkType(c,o,REDIS_LIST)) return; if (o == NULL || checkType(c,o,OBJ_LIST)) return;
long index; long index;
robj *value = c->argv[3]; robj *value = c->argv[3];
if ((getLongFromObjectOrReply(c, c->argv[2], &index, NULL) != REDIS_OK)) if ((getLongFromObjectOrReply(c, c->argv[2], &index, NULL) != REDIS_OK))
return; return;
if (o->encoding == REDIS_ENCODING_QUICKLIST) { if (o->encoding == OBJ_ENCODING_QUICKLIST) {
quicklist *ql = o->ptr; quicklist *ql = o->ptr;
int replaced = quicklistReplaceAtIndex(ql, index, int replaced = quicklistReplaceAtIndex(ql, index,
value->ptr, sdslen(value->ptr)); value->ptr, sdslen(value->ptr));
...@@ -357,7 +357,7 @@ void lsetCommand(client *c) { ...@@ -357,7 +357,7 @@ void lsetCommand(client *c) {
void popGenericCommand(client *c, int where) { void popGenericCommand(client *c, int where) {
robj *o = lookupKeyWriteOrReply(c,c->argv[1],shared.nullbulk); robj *o = lookupKeyWriteOrReply(c,c->argv[1],shared.nullbulk);
if (o == NULL || checkType(c,o,REDIS_LIST)) return; if (o == NULL || checkType(c,o,OBJ_LIST)) return;
robj *value = listTypePop(o,where); robj *value = listTypePop(o,where);
if (value == NULL) { if (value == NULL) {
...@@ -394,7 +394,7 @@ void lrangeCommand(client *c) { ...@@ -394,7 +394,7 @@ void lrangeCommand(client *c) {
(getLongFromObjectOrReply(c, c->argv[3], &end, NULL) != REDIS_OK)) return; (getLongFromObjectOrReply(c, c->argv[3], &end, NULL) != REDIS_OK)) return;
if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.emptymultibulk)) == NULL if ((o = lookupKeyReadOrReply(c,c->argv[1],shared.emptymultibulk)) == NULL
|| checkType(c,o,REDIS_LIST)) return; || checkType(c,o,OBJ_LIST)) return;
llen = listTypeLength(o); llen = listTypeLength(o);
/* convert negative indexes */ /* convert negative indexes */
...@@ -413,7 +413,7 @@ void lrangeCommand(client *c) { ...@@ -413,7 +413,7 @@ void lrangeCommand(client *c) {
/* Return the result in form of a multi-bulk reply */ /* Return the result in form of a multi-bulk reply */
addReplyMultiBulkLen(c,rangelen); addReplyMultiBulkLen(c,rangelen);
if (o->encoding == REDIS_ENCODING_QUICKLIST) { if (o->encoding == OBJ_ENCODING_QUICKLIST) {
listTypeIterator *iter = listTypeInitIterator(o, start, REDIS_TAIL); listTypeIterator *iter = listTypeInitIterator(o, start, REDIS_TAIL);
while(rangelen--) { while(rangelen--) {
...@@ -440,7 +440,7 @@ void ltrimCommand(client *c) { ...@@ -440,7 +440,7 @@ void ltrimCommand(client *c) {
(getLongFromObjectOrReply(c, c->argv[3], &end, NULL) != REDIS_OK)) return; (getLongFromObjectOrReply(c, c->argv[3], &end, NULL) != REDIS_OK)) return;
if ((o = lookupKeyWriteOrReply(c,c->argv[1],shared.ok)) == NULL || if ((o = lookupKeyWriteOrReply(c,c->argv[1],shared.ok)) == NULL ||
checkType(c,o,REDIS_LIST)) return; checkType(c,o,OBJ_LIST)) return;
llen = listTypeLength(o); llen = listTypeLength(o);
/* convert negative indexes */ /* convert negative indexes */
...@@ -461,7 +461,7 @@ void ltrimCommand(client *c) { ...@@ -461,7 +461,7 @@ void ltrimCommand(client *c) {
} }
/* Remove list elements to perform the trim */ /* Remove list elements to perform the trim */
if (o->encoding == REDIS_ENCODING_QUICKLIST) { if (o->encoding == OBJ_ENCODING_QUICKLIST) {
quicklistDelRange(o->ptr,0,ltrim); quicklistDelRange(o->ptr,0,ltrim);
quicklistDelRange(o->ptr,-rtrim,rtrim); quicklistDelRange(o->ptr,-rtrim,rtrim);
} else { } else {
...@@ -488,7 +488,7 @@ void lremCommand(client *c) { ...@@ -488,7 +488,7 @@ void lremCommand(client *c) {
return; return;
subject = lookupKeyWriteOrReply(c,c->argv[1],shared.czero); subject = lookupKeyWriteOrReply(c,c->argv[1],shared.czero);
if (subject == NULL || checkType(c,subject,REDIS_LIST)) return; if (subject == NULL || checkType(c,subject,OBJ_LIST)) return;
listTypeIterator *li; listTypeIterator *li;
if (toremove < 0) { if (toremove < 0) {
...@@ -551,7 +551,7 @@ void rpoplpushHandlePush(client *c, robj *dstkey, robj *dstobj, robj *value) { ...@@ -551,7 +551,7 @@ void rpoplpushHandlePush(client *c, robj *dstkey, robj *dstobj, robj *value) {
void rpoplpushCommand(client *c) { void rpoplpushCommand(client *c) {
robj *sobj, *value; robj *sobj, *value;
if ((sobj = lookupKeyWriteOrReply(c,c->argv[1],shared.nullbulk)) == NULL || if ((sobj = lookupKeyWriteOrReply(c,c->argv[1],shared.nullbulk)) == NULL ||
checkType(c,sobj,REDIS_LIST)) return; checkType(c,sobj,OBJ_LIST)) return;
if (listTypeLength(sobj) == 0) { if (listTypeLength(sobj) == 0) {
/* This may only happen after loading very old RDB files. Recent /* This may only happen after loading very old RDB files. Recent
...@@ -561,7 +561,7 @@ void rpoplpushCommand(client *c) { ...@@ -561,7 +561,7 @@ void rpoplpushCommand(client *c) {
robj *dobj = lookupKeyWrite(c->db,c->argv[2]); robj *dobj = lookupKeyWrite(c->db,c->argv[2]);
robj *touchedkey = c->argv[1]; robj *touchedkey = c->argv[1];
if (dobj && checkType(c,dobj,REDIS_LIST)) return; if (dobj && checkType(c,dobj,OBJ_LIST)) return;
value = listTypePop(sobj,REDIS_TAIL); value = listTypePop(sobj,REDIS_TAIL);
/* We saved touched key, and protect it, since rpoplpushHandlePush /* We saved touched key, and protect it, since rpoplpushHandlePush
* may change the client command argument vector (it does not * may change the client command argument vector (it does not
...@@ -743,7 +743,7 @@ int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, redisDb ...@@ -743,7 +743,7 @@ int serveClientBlockedOnList(client *receiver, robj *key, robj *dstkey, redisDb
robj *dstobj = robj *dstobj =
lookupKeyWrite(receiver->db,dstkey); lookupKeyWrite(receiver->db,dstkey);
if (!(dstobj && if (!(dstobj &&
checkType(receiver,dstobj,REDIS_LIST))) checkType(receiver,dstobj,OBJ_LIST)))
{ {
/* Propagate the RPOP operation. */ /* Propagate the RPOP operation. */
argv[0] = shared.rpop; argv[0] = shared.rpop;
...@@ -803,7 +803,7 @@ void handleClientsBlockedOnLists(void) { ...@@ -803,7 +803,7 @@ void handleClientsBlockedOnLists(void) {
/* If the key exists and it's a list, serve blocked clients /* If the key exists and it's a list, serve blocked clients
* with data. */ * with data. */
robj *o = lookupKeyWrite(rl->db,rl->key); robj *o = lookupKeyWrite(rl->db,rl->key);
if (o != NULL && o->type == REDIS_LIST) { if (o != NULL && o->type == OBJ_LIST) {
dictEntry *de; dictEntry *de;
/* We serve clients in the same order they blocked for /* We serve clients in the same order they blocked for
...@@ -874,7 +874,7 @@ void blockingPopGenericCommand(client *c, int where) { ...@@ -874,7 +874,7 @@ void blockingPopGenericCommand(client *c, int where) {
for (j = 1; j < c->argc-1; j++) { for (j = 1; j < c->argc-1; j++) {
o = lookupKeyWrite(c->db,c->argv[j]); o = lookupKeyWrite(c->db,c->argv[j]);
if (o != NULL) { if (o != NULL) {
if (o->type != REDIS_LIST) { if (o->type != OBJ_LIST) {
addReply(c,shared.wrongtypeerr); addReply(c,shared.wrongtypeerr);
return; return;
} else { } else {
...@@ -945,7 +945,7 @@ void brpoplpushCommand(client *c) { ...@@ -945,7 +945,7 @@ void brpoplpushCommand(client *c) {
blockForKeys(c, c->argv + 1, 1, timeout, c->argv[2]); blockForKeys(c, c->argv + 1, 1, timeout, c->argv[2]);
} }
} else { } else {
if (key->type != REDIS_LIST) { if (key->type != OBJ_LIST) {
addReply(c, shared.wrongtypeerr); addReply(c, shared.wrongtypeerr);
} else { } else {
/* The list exists and has elements, so /* The list exists and has elements, so
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment