--- parser3/src/main/pa_memory.C 2003/04/01 12:05:46 1.1.2.5.2.8 +++ parser3/src/main/pa_memory.C 2003/04/01 15:42:26 1.1.2.5.2.10 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_MEMORY_C="$Date: 2003/04/01 12:05:46 $"; +static const char* IDENT_MEMORY_C="$Date: 2003/04/01 15:42:26 $"; #include "pa_sapi.h" #include "pa_common.h" @@ -30,6 +30,8 @@ void *pa_fail_alloc(const char* what, si #ifdef PA_DEBUG_GC_MEMORY +void bug() {} + const size_t HEADTAIL_SIZE=4; static size_t debug_size(size_t user_size) { @@ -50,6 +52,9 @@ static void* fill_return_user(void* aptr for(size_t i=pure_size; i=(char*)0x01c357e40 && ptr<=((char*)0x01c357e4+100)) + //printf("valid:0x%p\n", ptr); + return ptr+HEADTAIL_SIZE; } static void* check_return_debug(void* auser_ptr) { @@ -58,16 +63,16 @@ static void* check_return_debug(void* au size_t raw_size=GC_size(ptr); if(raw_size==0) - _asm int 3; + bug(); size_t pure_size=raw_size; while(ptr[pure_size-1]==PAD_MARK) pure_size--; if(memcmp(ptr, &BEFORE_MARK, HEADTAIL_SIZE)!=0) - _asm int 3; + bug(); if(memcmp(ptr+pure_size-HEADTAIL_SIZE, &AFTER_MARK, HEADTAIL_SIZE)!=0) - _asm int 3; + bug(); return ptr; } @@ -85,7 +90,7 @@ void* pa_gc_malloc_atomic(size_t size) { void* pa_gc_realloc(void* user_ptr, size_t size) { if(!GC_is_visible(user_ptr)) - _asm int 3; + bug(); //printf("realloc: 0x%p -> %u\n", ptr, size); size=debug_size(size); return fill_return_user( @@ -98,4 +103,5 @@ void pa_gc_free(void* ptr) { // ignore free } + #endif