diff --git a/src/new.cpp b/src/new.cpp index 4775e207a..4e6b07dfd 100644 --- a/src/new.cpp +++ b/src/new.cpp @@ -27,14 +27,17 @@ void *operator new(std::size_t size, const std::nothrow_t &) noexcept return zmalloc(size, MALLOC_LOCAL); } +//need to do null checks for delete since the compiler can optimize out null checks in zfree void operator delete(void * p) noexcept { - zfree(p); + if (p != nullptr) + zfree(p); } void operator delete(void *p, std::size_t) noexcept { - zfree(p); + if (p != nullptr) + zfree(p); } #endif