reenable optimized string dup code
Former-commit-id: 5eb84db03a3035d8e96a366f3d372522424646ea
This commit is contained in:
parent
9df7197221
commit
e25ea03c25
@ -1507,10 +1507,10 @@ sds serializeStoredStringObject(sds str, robj_roptr o)
|
|||||||
break; //nop
|
break; //nop
|
||||||
|
|
||||||
case OBJ_ENCODING_EMBSTR:
|
case OBJ_ENCODING_EMBSTR:
|
||||||
size_t cch = sdslen(szFromObj(o)) + sizeof(struct sdshdr8);
|
size_t cb = zmalloc_size(o.unsafe_robjcast());
|
||||||
if (cch > sizeof(redisObject::m_ptr))
|
if (cb > sizeof(robj))
|
||||||
{
|
{
|
||||||
str = sdscatlen(str, szFromObj(o) + sizeof(redisObject::m_ptr), cch - sizeof(redisObject::m_ptr));
|
str = sdscatlen(str, o.unsafe_robjcast() + 1, cb - sizeof(robj));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1528,8 +1528,7 @@ robj *deserializeStoredStringObject(const char *data, size_t cb)
|
|||||||
serverAssert(cb == sizeof(robj));
|
serverAssert(cb == sizeof(robj));
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
case OBJ_ENCODING_EMBSTR:
|
case OBJ_ENCODING_EMBSTR:
|
||||||
newObject = (robj*)zmalloc(cb+1, MALLOC_LOCAL);
|
newObject = (robj*)zmalloc(cb, MALLOC_LOCAL);
|
||||||
((char*)newObject)[cb] = '\0';
|
|
||||||
memcpy(newObject, data, cb);
|
memcpy(newObject, data, cb);
|
||||||
newObject->setrefcount(1);
|
newObject->setrefcount(1);
|
||||||
return newObject;
|
return newObject;
|
||||||
@ -1550,8 +1549,8 @@ robj *deserializeStoredObject(const void *data, size_t cb)
|
|||||||
{
|
{
|
||||||
switch (((char*)data)[0])
|
switch (((char*)data)[0])
|
||||||
{
|
{
|
||||||
//case RDB_TYPE_STRING:
|
case RDB_TYPE_STRING:
|
||||||
// return deserializeStoredStringObject(((char*)data)+1, cb-1);
|
return deserializeStoredStringObject(((char*)data)+1, cb-1);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
rio payload;
|
rio payload;
|
||||||
@ -1587,12 +1586,12 @@ sds serializeStoredObject(robj_roptr o)
|
|||||||
{
|
{
|
||||||
switch (o->type)
|
switch (o->type)
|
||||||
{
|
{
|
||||||
//case OBJ_STRING:
|
case OBJ_STRING:
|
||||||
//{
|
{
|
||||||
// sds sdsT = sdsnewlen(nullptr, 1);
|
sds sdsT = sdsnewlen(nullptr, 1);
|
||||||
// sdsT[0] = RDB_TYPE_STRING;
|
sdsT[0] = RDB_TYPE_STRING;
|
||||||
// return serializeStoredStringObject(sdsT, o);
|
return serializeStoredStringObject(sdsT, o);
|
||||||
//}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
rio rdb;
|
rio rdb;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user