浏览代码

added hl_gc_get_memsize

Nicolas Cannasse 3 年之前
父节点
当前提交
30917bb01c
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 7 0
      src/gc.c
  2. 1 0
      src/hl.h

+ 7 - 0
src/gc.c

@@ -741,6 +741,13 @@ HL_API bool hl_is_gc_ptr( void *ptr ) {
 	return true;
 }
 
+HL_API int hl_gc_get_memsize( void *ptr ) {
+	gc_pheader *page = GC_GET_PAGE(ptr);
+	if( !page || !INPAGE(ptr,page) ) return -1;
+	return gc_allocator_fast_block_size(page,ptr);
+}
+
+
 static bool gc_is_active = true;
 
 static void gc_check_mark() {

+ 1 - 0
src/hl.h

@@ -724,6 +724,7 @@ HL_API void hl_add_root( void *ptr );
 HL_API void hl_remove_root( void *ptr );
 HL_API void hl_gc_major( void );
 HL_API bool hl_is_gc_ptr( void *ptr );
+HL_API int hl_gc_get_memsize( void *ptr );
 
 HL_API void hl_blocking( bool b );
 HL_API bool hl_is_blocking( void );