void *tracker_alloc__(size_t size,void *(*AllocFunction)(size_t size2), const char *filename, int linenumber){ allocated+=size; R_ASSERT(THREADING_is_main_thread()); R_ASSERT(!PLAYER_current_thread_has_lock()); #ifndef DISABLE_BDWGC # ifdef _AMIGA return (*GC_amiga_allocwrapper_do)(size,AllocFunction); # else # if !defined(VALIDATE_MEM) void *ret = AllocFunction(size); # else void *ret = V_alloc(AllocFunction,size,filename,linenumber); void *actual_mem_start = V_allocated_mem_real_start(ret); #if defined(RELEASE) #error "oh no" #endif GC_register_finalizer_ignore_self(actual_mem_start, gcfinalizer, NULL, NULL, NULL); # endif # endif return ret; #else return OS_getmem(size); // For debugging. (wrong use of GC_malloced memory could be very difficult to trace) #endif }
void V_entityinit() { unsigned long i; if(dsc) return; i = sizeof(unsigned long) * ENT_CNT; dsc = (unsigned long *) V_alloc(i); i = sizeof(unsigned int) * ENT_CNT; vao = (unsigned int *) V_alloc(i); f1 = (unsigned int *) V_alloc(i); f2 = (unsigned int *) V_alloc(i); glGenVertexArrays(ENT_CNT, vao); for(i = 0; i < ENT_CNT; i++) { dsc[i] = 0; f1[i] = f2[i] = 0; } }