diff options
Diffstat (limited to 'src/qml/jsruntime/qv4mm.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4mm.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4mm.cpp b/src/qml/jsruntime/qv4mm.cpp index 9923c8834c..d55ddead89 100644 --- a/src/qml/jsruntime/qv4mm.cpp +++ b/src/qml/jsruntime/qv4mm.cpp @@ -280,6 +280,7 @@ Managed *MemoryManager::alloc(std::size_t size) if (size >= MemoryManager::Data::MaxItemSize) { // we use malloc for this MemoryManager::Data::LargeItem *item = static_cast<MemoryManager::Data::LargeItem *>(malloc(size + sizeof(MemoryManager::Data::LargeItem))); + memset(item, 0, size + sizeof(MemoryManager::Data::LargeItem)); item->next = m_d->largeItems; m_d->largeItems = item; return item->managed(); @@ -525,6 +526,7 @@ void MemoryManager::sweep(char *chunkStart, std::size_t chunkSize, size_t size, m->internalClass->vtable->collectDeletables(m, deletable); m->internalClass->vtable->destroy(m); + memset(m, 0, size); m->setNextFree(*f); #ifdef V4_USE_VALGRIND VALGRIND_DISABLE_ERROR_REPORTING; |