From 88e44d9fdd83ad45a4e038269281bbb3ddb68cce Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 24 Aug 2019 11:21:19 -0700 Subject: [PATCH] fix(runtime/compact): memory leak --- src/runtime/compact.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/runtime/compact.cpp b/src/runtime/compact.cpp index 8c69602302..26884b93d3 100644 --- a/src/runtime/compact.cpp +++ b/src/runtime/compact.cpp @@ -183,8 +183,7 @@ void object_compactor::insert_mpz(object * o) { into an mpz number. So, we use std::max to make sure we have enough space for both. */ size_t extra_space = std::max(s.size() + 1, sizeof(mpz_object*)); size_t sz = sizeof(mpz_object) + extra_space; - void * mem = alloc(sz); - mpz_object * new_o = new (mem) mpz_object(); + object * new_o = (lean_object*)alloc(sz); lean_set_non_heap_header((lean_object*)new_o, sz, LeanMPZ, 0); save(o, (lean_object*)new_o); void * data = reinterpret_cast(new_o) + sizeof(mpz_object);