Procházet zdrojové kódy

added hl_gc_get_memsize

Nicolas Cannasse před 3 roky
rodič
revize
30917bb01c
2 změnil soubory, kde provedl 8 přidání a 0 odebrání
  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;
 	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 bool gc_is_active = true;
 
 
 static void gc_check_mark() {
 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_remove_root( void *ptr );
 HL_API void hl_gc_major( void );
 HL_API void hl_gc_major( void );
 HL_API bool hl_is_gc_ptr( void *ptr );
 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 void hl_blocking( bool b );
 HL_API bool hl_is_blocking( void );
 HL_API bool hl_is_blocking( void );