forked from bartvdbraak/blender
Fix #35890: memory leak in OS X ghost locale detection.
This commit is contained in:
parent
ee85587a43
commit
b466a5c9a9
@ -549,7 +549,7 @@ int cocoa_request_qtcodec_settings(bContext *C, wmOperator *op)
|
||||
|
||||
#pragma mark initialization/finalization
|
||||
|
||||
const char *user_locale; // Global current user locale
|
||||
char GHOST_user_locale[128]; // Global current user locale
|
||||
|
||||
GHOST_SystemCocoa::GHOST_SystemCocoa()
|
||||
{
|
||||
@ -590,11 +590,13 @@ GHOST_SystemCocoa::GHOST_SystemCocoa()
|
||||
m_ignoreWindowSizedMessages = false;
|
||||
|
||||
//Get current locale
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
CFLocaleRef myCFLocale = CFLocaleCopyCurrent();
|
||||
NSLocale * myNSLocale = (NSLocale *) myCFLocale;
|
||||
[myNSLocale autorelease];
|
||||
NSString *nsIdentifier = [myNSLocale localeIdentifier];
|
||||
user_locale = [nsIdentifier UTF8String];
|
||||
strncpy(GHOST_user_locale, [nsIdentifier UTF8String], sizeof(GHOST_user_locale) - 1);
|
||||
[pool drain];
|
||||
}
|
||||
|
||||
GHOST_SystemCocoa::~GHOST_SystemCocoa()
|
||||
|
@ -65,8 +65,8 @@ void bl_locale_set(const char *locale)
|
||||
}
|
||||
else {
|
||||
#ifdef __APPLE__
|
||||
extern const char *user_locale; // pulled from Ghost_SystemCocoa
|
||||
std::string locale_osx = user_locale + std::string(".UTF-8");
|
||||
extern char GHOST_user_locale[128]; // pulled from Ghost_SystemCocoa
|
||||
std::string locale_osx = GHOST_user_locale + std::string(".UTF-8");
|
||||
_locale = gen(locale_osx.c_str());
|
||||
#else
|
||||
_locale = gen("");
|
||||
|
Loading…
Reference in New Issue
Block a user