From c8b5b8b5e4798d867acae0fc246d61a7c72cefbb Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Thu, 31 Jul 2014 22:21:34 -0400 Subject: [PATCH] Added function for getting the number of references to an object --- source/mem/mem.c | 6 ++++++ source/mem/mem.h | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/source/mem/mem.c b/source/mem/mem.c index 1977a7a..c2eb7e6 100644 --- a/source/mem/mem.c +++ b/source/mem/mem.c @@ -38,6 +38,12 @@ void mem_release(void* p_obj) } } +int mem_num_references(void* p_obj) +{ + obj_t* p_hdr = (((obj_t*)p_obj)-1); + return p_hdr->refcount; +} + void mem_autorelease(void* p_obj) { (void)p_obj; diff --git a/source/mem/mem.h b/source/mem/mem.h index fae9c32..80534ab 100644 --- a/source/mem/mem.h +++ b/source/mem/mem.h @@ -28,6 +28,15 @@ typedef void (*destructor_t)(void* p_val); */ void* mem_allocate(size_t size, destructor_t p_destruct_fn); +/** + * @brief Returns the reference count for the given object. + * + * @param p_obj The object whose reference count should be returned. + * + * @return Number of references. + */ +int mem_num_references(void* p_obj); + /** * @brief Increments the reference count for the given object. * -- 2.55.0