diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp index c0dc79974..2de39adff 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpinePlugin.cpp @@ -37,8 +37,26 @@ class FSpinePlugin : public SpinePlugin { IMPLEMENT_MODULE( FSpinePlugin, SpinePlugin ) -void FSpinePlugin::StartupModule() { } +// These should be filled with UE4's specific allocator functions. +extern "C" { + void _spSetMalloc( void* ( *_malloc ) ( size_t size ) ); + void _spSetFree( void( *_free ) ( void* ptr ) ); + void _spSetRealloc( void* ( *_realloc ) ( void* ptr, size_t size ) ); +} +static void * SpineMalloc( size_t size ) { + return FMemory::Malloc( size ); +} + +static void * SpineRealloc( void* ptr, size_t size ) { + return FMemory::Realloc( ptr, size ); +} + +void FSpinePlugin::StartupModule() { + _spSetMalloc( &SpineMalloc ); + _spSetRealloc( &SpineRealloc ); + _spSetFree( FMemory::Free ); +} void FSpinePlugin::ShutdownModule() { }