[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57821] trunk/blender/intern: Fix #35890: memory leak in OS X ghost locale detection.
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Jun 27 15:24:56 CEST 2013
Revision: 57821
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57821
Author: blendix
Date: 2013-06-27 13:24:55 +0000 (Thu, 27 Jun 2013)
Log Message:
-----------
Fix #35890: memory leak in OS X ghost locale detection.
Modified Paths:
--------------
trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
trunk/blender/intern/locale/boost_locale_wrapper.cpp
Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm 2013-06-27 11:30:53 UTC (rev 57820)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm 2013-06-27 13:24:55 UTC (rev 57821)
@@ -549,7 +549,7 @@
#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 @@
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()
Modified: trunk/blender/intern/locale/boost_locale_wrapper.cpp
===================================================================
--- trunk/blender/intern/locale/boost_locale_wrapper.cpp 2013-06-27 11:30:53 UTC (rev 57820)
+++ trunk/blender/intern/locale/boost_locale_wrapper.cpp 2013-06-27 13:24:55 UTC (rev 57821)
@@ -65,8 +65,8 @@
}
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("");
More information about the Bf-blender-cvs
mailing list