From 6afb6c767ed3274359bcac5af5a11851922e3668 Mon Sep 17 00:00:00 2001 From: Michael Bebenita Date: Tue, 27 Jul 2010 23:10:31 -0700 Subject: Move allocation-tracking into rust_srv. --- src/rt/rust.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'src/rt/rust.cpp') diff --git a/src/rt/rust.cpp b/src/rt/rust.cpp index 00e709c9..37398655 100644 --- a/src/rt/rust.cpp +++ b/src/rt/rust.cpp @@ -1,13 +1,12 @@ #include "rust_internal.h" -#include "util/array_list.h" -// #define TRACK_ALLOCATIONS +#define TRACK_ALLOCATIONS // For debugging, keeps track of live allocations, so you can find out // exactly what leaked. -#ifdef TRACK_ALLOCATIONS -array_list allocation_list; -#endif +//#ifdef TRACK_ALLOCATIONS +//array_list allocation_list; +//#endif rust_srv::rust_srv() : live_allocs(0) @@ -70,16 +69,18 @@ rust_srv::realloc(void *p, size_t bytes) void rust_srv::free(void *p) { - if (live_allocs < 1) { - fatal("live_allocs < 1", __FILE__, __LINE__); - } - live_allocs--; - ::free(p); #ifdef TRACK_ALLOCATIONS if (allocation_list.replace(p, NULL) == NULL) { + printf("ptr 0x%" PRIxPTR " is not in allocation_list\n", + (uintptr_t) p); fatal("not in allocation_list", __FILE__, __LINE__); } #endif + if (live_allocs < 1) { + fatal("live_allocs < 1", __FILE__, __LINE__); + } + live_allocs--; + ::free(p); } void -- cgit v1.2.3