提交 da310484 编写于 作者: Z zeliard 提交者: Alexis Campailla

Fix wrong pointer castings for x64 support

上级 a2f2a687
......@@ -742,7 +742,7 @@ int rioWriteBulkObject(rio *r, robj *obj) {
/* Avoid using getDecodedObject to help copy-on-write (we are often
* in a child process when this function is called). */
if (obj->encoding == REDIS_ENCODING_INT) {
return (int)rioWriteBulkLongLong(r,(long)obj->ptr);
return (int)rioWriteBulkLongLong(r,(long long)obj->ptr);
} else if (obj->encoding == REDIS_ENCODING_RAW) {
return (int)rioWriteBulkString(r,obj->ptr,sdslen(obj->ptr));
} else {
......
......@@ -262,7 +262,7 @@ void getbitCommand(redisClient *c) {
byte = bitoffset >> 3;
bit = 7 - (bitoffset & 0x7);
if (o->encoding != REDIS_ENCODING_RAW) {
if (byte < (size_t)ll2string(llbuf,sizeof(llbuf),(long)o->ptr))
if (byte < (size_t)ll2string(llbuf,sizeof(llbuf),(long long)o->ptr))
bitval = llbuf[byte] & (1 << bit);
} else {
if (byte < sdslen(o->ptr))
......@@ -461,7 +461,7 @@ void bitcountCommand(redisClient *c) {
* array if our string was integer encoded. */
if (o->encoding == REDIS_ENCODING_INT) {
p = (unsigned char*) llbuf;
strlen = ll2string(llbuf,sizeof(llbuf),(long)o->ptr);
strlen = ll2string(llbuf,sizeof(llbuf),(long long)o->ptr);
} else {
p = (unsigned char*) o->ptr;
strlen = (long)sdslen(o->ptr);
......@@ -530,7 +530,7 @@ void bitposCommand(redisClient *c) {
* array if our string was integer encoded. */
if (o->encoding == REDIS_ENCODING_INT) {
p = (unsigned char*) llbuf;
strlen = ll2string(llbuf,sizeof(llbuf),(long)o->ptr);
strlen = ll2string(llbuf,sizeof(llbuf),(long long)o->ptr);
} else {
p = (unsigned char*) o->ptr;
strlen = (long)sdslen(o->ptr);
......
......@@ -542,7 +542,7 @@ void scanGenericCommand(redisClient *c, robj *o, unsigned long cursor) {
int len;
redisAssert(kobj->encoding == REDIS_ENCODING_INT);
len = ll2string(buf,sizeof(buf),(long)kobj->ptr);
len = ll2string(buf,sizeof(buf),(long long)kobj->ptr);
if (!stringmatchlen(pat, patlen, buf, len, 0)) filter = 1;
} else {
if (!stringmatchlen(pat, patlen, kobj->ptr, (int)sdslen(kobj->ptr), 0))
......
......@@ -569,10 +569,10 @@ long long dictFingerprint(dict *d) {
long long integers[6], hash = 0;
int j;
integers[0] = (long) d->ht[0].table;
integers[0] = (long long) d->ht[0].table;
integers[1] = d->ht[0].size;
integers[2] = d->ht[0].used;
integers[3] = (long) d->ht[1].table;
integers[3] = (long long) d->ht[1].table;
integers[4] = d->ht[1].size;
integers[5] = d->ht[1].used;
......
......@@ -381,7 +381,7 @@ robj *getDecodedObject(robj *o) {
if (o->type == REDIS_STRING && o->encoding == REDIS_ENCODING_INT) {
char buf[32];
ll2string(buf,32,(long)o->ptr);
ll2string(buf,32,(long long)o->ptr);
dec = createStringObject(buf,strlen(buf));
return dec;
} else {
......@@ -407,14 +407,14 @@ int compareStringObjectsWithFlags(robj *a, robj *b, int flags) {
if (a == b) return 0;
if (a->encoding != REDIS_ENCODING_RAW) {
alen = ll2string(bufa,sizeof(bufa),(long) a->ptr);
alen = ll2string(bufa,sizeof(bufa),(long long) a->ptr);
astr = bufa;
} else {
astr = a->ptr;
alen = sdslen(astr);
}
if (b->encoding != REDIS_ENCODING_RAW) {
blen = ll2string(bufb,sizeof(bufb),(long) b->ptr);
blen = ll2string(bufb,sizeof(bufb),(long long) b->ptr);
bstr = bufb;
} else {
bstr = b->ptr;
......@@ -461,7 +461,7 @@ size_t stringObjectLen(robj *o) {
} else {
char buf[32];
return ll2string(buf,32,(long)o->ptr);
return ll2string(buf,32,(long long)o->ptr);
}
}
......
......@@ -331,7 +331,7 @@ int rdbSaveStringObject(rio *rdb, robj *obj) {
/* Avoid to decode the object, then encode it again, if the
* object is already integer encoded. */
if (obj->encoding == REDIS_ENCODING_INT) {
return rdbSaveLongLongAsStringObject(rdb,(long)obj->ptr);
return rdbSaveLongLongAsStringObject(rdb,(long long)obj->ptr);
} else {
redisAssertWithInfo(NULL,obj,obj->encoding == REDIS_ENCODING_RAW);
return rdbSaveRawString(rdb,obj->ptr,sdslen(obj->ptr));
......
......@@ -499,7 +499,7 @@ void srandmemberWithCountCommand(redisClient *c) {
retval = dictAdd(d,dupStringObject(ele),NULL);
} else if (ele->encoding == REDIS_ENCODING_INT) {
retval = dictAdd(d,
createStringObjectFromLongLong((long)ele->ptr),NULL);
createStringObjectFromLongLong((long long)ele->ptr),NULL);
}
redisAssert(retval == DICT_OK);
}
......@@ -530,7 +530,7 @@ void srandmemberWithCountCommand(redisClient *c) {
} else if (ele->encoding == REDIS_ENCODING_RAW) {
ele = dupStringObject(ele);
} else if (ele->encoding == REDIS_ENCODING_INT) {
ele = createStringObjectFromLongLong((long)ele->ptr);
ele = createStringObjectFromLongLong((long long)ele->ptr);
}
/* Try to add the object to the dictionary. If it already exists
* free it, otherwise increment the number of objects we have
......@@ -671,7 +671,7 @@ void sinterGenericCommand(redisClient *c, robj **setkeys, unsigned long setnum,
* a much faster path. */
if (eleobj->encoding == REDIS_ENCODING_INT &&
sets[j]->encoding == REDIS_ENCODING_INTSET &&
!intsetFind((intset*)sets[j]->ptr,(long)eleobj->ptr))
!intsetFind((intset*)sets[j]->ptr,(long long)eleobj->ptr))
{
break;
/* else... object to object check is easy as we use the
......
......@@ -244,7 +244,7 @@ void getrangeCommand(redisClient *c) {
if (o->encoding == REDIS_ENCODING_INT) {
str = llbuf;
strlen = ll2string(llbuf,sizeof(llbuf),(long)o->ptr);
strlen = ll2string(llbuf,sizeof(llbuf),(long long)o->ptr);
} else {
str = o->ptr;
strlen = sdslen(str);
......
......@@ -1712,7 +1712,7 @@ int zuiLongLongFromValue(zsetopval *val) {
if (val->ele != NULL) {
if (val->ele->encoding == REDIS_ENCODING_INT) {
val->ell = (long)val->ele->ptr;
val->ell = (long long)val->ele->ptr;
val->flags |= OPVAL_VALID_LL;
} else if (val->ele->encoding == REDIS_ENCODING_RAW) {
if (string2ll(val->ele->ptr,sdslen(val->ele->ptr),&val->ell))
......@@ -1747,7 +1747,7 @@ int zuiBufferFromValue(zsetopval *val) {
if (val->estr == NULL) {
if (val->ele != NULL) {
if (val->ele->encoding == REDIS_ENCODING_INT) {
val->elen = ll2string((char*)val->_buf,sizeof(val->_buf),(long)val->ele->ptr);
val->elen = ll2string((char*)val->_buf,sizeof(val->_buf),(long long)val->ele->ptr);
val->estr = val->_buf;
} else if (val->ele->encoding == REDIS_ENCODING_RAW) {
val->elen = (unsigned int)sdslen(val->ele->ptr);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册