#include "actual.h" #include "init/alloc.h" extern "C" { void free(void* ptr) { static actual::ptr actual_free{}; if ( !actual_free ) { actual_free = actual::get_ptr("free"); } if ( !init::from_static_buffer(ptr) ) { actual_free(ptr); } } void* malloc(size_t size) { static actual::ptr actual_malloc{}; if ( init::dlsymContext::is_active() ) { return init::static_malloc(size); } else { if ( !actual_malloc ) { actual_malloc = actual::get_ptr("malloc"); } return actual_malloc(size); } } void* calloc(size_t block, size_t size) { static actual::ptr actual_calloc{}; if ( init::dlsymContext::is_active() ) { return init::static_calloc(block, size); } else { if ( !actual_calloc ) { actual_calloc = actual::get_ptr("calloc"); } return actual_calloc(block, size); } } }