Mercurial > fife-parpg
diff engine/core/controller/engine.cpp @ 287:fdb1e98fd8b6
* Create an autorelease pool, so autoreleased SDL objects don't leak (Mac OS X specific issue)
* Patch by nschum
author | mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Sun, 21 Jun 2009 15:43:12 +0000 |
parents | bb9902910067 |
children | 8aae3fabcf41 |
line wrap: on
line diff
--- a/engine/core/controller/engine.cpp Sun Jun 21 15:09:54 2009 +0000 +++ b/engine/core/controller/engine.cpp Sun Jun 21 15:43:12 2009 +0000 @@ -77,6 +77,8 @@ #include "engine.h" #ifdef USE_COCOA + +#include <objc/message.h> #include <dlfcn.h> int main(int argc, char **argv) @@ -112,6 +114,11 @@ void (*nsappload)(void); nsappload = (void(*)()) dlsym( cocoa_lib, "NSApplicationLoad"); nsappload(); + + // Create an autorelease pool, so autoreleased SDL objects don't leak. + objc_object *NSAutoreleasePool = objc_getClass("NSAutoreleasePool"); + m_autoreleasePool = + objc_msgSend(NSAutoreleasePool, sel_registerName("new")); #endif preInit(); } @@ -281,6 +288,9 @@ TTF_Quit(); SDL_Quit(); +#ifdef USE_COCOA + objc_msgSend(m_autoreleasePool, sel_registerName("release")); +#endif FL_LOG(_log, "================== Engine destructed =================="); m_destroyed = true; //delete m_logmanager;