Fix some uses of uninitialized memory
Introduced in ee36bda8f8
, unsurprisingly.
This commit is contained in:
@@ -899,6 +899,7 @@ void freeAndMakeCapacityAtLeast(Node *&self, int capacity,
|
|||||||
case Type_Node48: {
|
case Type_Node48: {
|
||||||
auto *self48 = (Node48 *)self;
|
auto *self48 = (Node48 *)self;
|
||||||
auto *newSelf = allocators->node48.allocate(capacity);
|
auto *newSelf = allocators->node48.allocate(capacity);
|
||||||
|
memset(newSelf->index, -1, sizeof(newSelf->index));
|
||||||
memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin,
|
memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin,
|
||||||
kNodeCopySize);
|
kNodeCopySize);
|
||||||
memcpy(newSelf->partialKey(), self48->partialKey(), self->partialKeyLen);
|
memcpy(newSelf->partialKey(), self48->partialKey(), self->partialKeyLen);
|
||||||
@@ -926,6 +927,9 @@ void freeAndMakeCapacityAtLeast(Node *&self, int capacity,
|
|||||||
case Type_Node256: {
|
case Type_Node256: {
|
||||||
auto *self256 = (Node256 *)self;
|
auto *self256 = (Node256 *)self;
|
||||||
auto *newSelf = allocators->node256.allocate(capacity);
|
auto *newSelf = allocators->node256.allocate(capacity);
|
||||||
|
for (int i = 0; i < 256; ++i) {
|
||||||
|
newSelf->children[i].child = nullptr;
|
||||||
|
}
|
||||||
memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin,
|
memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin,
|
||||||
kNodeCopySize);
|
kNodeCopySize);
|
||||||
memcpy(newSelf->partialKey(), self256->partialKey(), self->partialKeyLen);
|
memcpy(newSelf->partialKey(), self256->partialKey(), self->partialKeyLen);
|
||||||
|
Reference in New Issue
Block a user