From c3fb80019f9df0f14528cddddbafa277fb4149f2 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Fri, 12 Jan 2018 00:56:36 +0300 Subject: [PATCH] New API function (get_expl_freed_bytes_since_gc) Note: this function could be used in test_cpp to check that the proper operator delete is called. * include/gc.h (GC_get_expl_freed_bytes_since_gc): New function prototype. * mallocx.c (GC_get_expl_freed_bytes_since_gc): New function definition (which returns GC_bytes_freed). --- include/gc.h | 4 ++++ mallocx.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/include/gc.h b/include/gc.h index 6b50d29d..24a2bd0e 100644 --- a/include/gc.h +++ b/include/gc.h @@ -686,6 +686,10 @@ GC_API size_t GC_CALL GC_get_unmapped_bytes(void); /* regarding thread-safety). */ GC_API size_t GC_CALL GC_get_bytes_since_gc(void); +/* Return the number of explicitly deallocated bytes of memory since */ +/* the recent collection. This is an unsynchronized getter. */ +GC_API size_t GC_CALL GC_get_expl_freed_bytes_since_gc(void); + /* Return the total number of bytes allocated in this process. */ /* Never decreases, except due to wrapping. This is an unsynchronized */ /* getter (see GC_get_heap_size comment regarding thread-safety). */ diff --git a/mallocx.c b/mallocx.c index 242804a6..6440311d 100644 --- a/mallocx.c +++ b/mallocx.c @@ -259,6 +259,11 @@ GC_API void GC_CALL GC_incr_bytes_freed(size_t n) GC_bytes_freed += n; } +GC_API size_t GC_CALL GC_get_expl_freed_bytes_since_gc(void) +{ + return (size_t)GC_bytes_freed; +} + # ifdef PARALLEL_MARK STATIC volatile AO_t GC_bytes_allocd_tmp = 0; /* Number of bytes of memory allocated since */ -- 2.40.0