diff --git a/src/object.cpp b/src/object.cpp index bde1bc302..6ecaf3ba5 100644 --- a/src/object.cpp +++ b/src/object.cpp @@ -102,11 +102,10 @@ robj *createEmbeddedStringObject(const char *ptr, size_t len) { allocsize = sizeof(void*); size_t mvccExtraBytes = g_pserver->fActiveReplica ? sizeof(redisObjectExtended) : 0; - char *oB = (char*)zmalloc(sizeof(robj)+allocsize-sizeof(redisObject::m_ptr)+mvccExtraBytes, MALLOC_SHARED); + char *oB = (char*)zcalloc(sizeof(robj)+allocsize-sizeof(redisObject::m_ptr)+mvccExtraBytes, MALLOC_SHARED); robj *o = reinterpret_cast(oB + mvccExtraBytes); struct sdshdr8 *sh = (sdshdr8*)(&o->m_ptr); - new (o) redisObject; o->type = OBJ_STRING; o->encoding = OBJ_ENCODING_EMBSTR; o->setrefcount(1); diff --git a/src/server.h b/src/server.h index fa2183149..5aea41b23 100644 --- a/src/server.h +++ b/src/server.h @@ -950,7 +950,6 @@ struct redisObjectExtended { }; typedef struct redisObject { - friend redisObject *createEmbeddedStringObject(const char *ptr, size_t len); protected: redisObject() {}