On 11/13/2013 09:28 AM, Wayne Stambaugh wrote: > Fix committed in r4463. > > ** Changed in: kicad > Status: New => Fix Committed >
tool_manager.cpp: line 142 is using concatonation against a format string, this is a bug. If you want formatting, we need wxString::Format() or the new std::string StrPrintf() or similar. If the format string is not going to be translated, then there are savings by going down to an 8 bit string. On linux, wxT() creates a 32 bit string, which takes up 4 times the memory of an 8 bit string. Further consideration has us anticipating a transition to wx 3.x on all platforms, at which point we can remove all wxT() instances, supposedly. That also will be a transition to 8 bit constant strings, one we have to wait for. So there are two paths forward, both sensible, one you have to wait for. The deciding factor for me is that aTool->GetName() returns const std::string& so we start with an 8 bit string. So I offer the attached patch.
=== modified file 'common/tool/tool_manager.cpp' --- common/tool/tool_manager.cpp 2013-11-13 14:52:06 +0000 +++ common/tool/tool_manager.cpp 2013-11-13 16:42:35 +0000 @@ -139,8 +139,9 @@ { if( !static_cast<TOOL_INTERACTIVE*>( aTool )->Init() ) { - DisplayError( NULL, wxT( "Initialization of the %s tool failed" ) + - wxString( aTool->GetName().c_str(), wxConvUTF8 ) ); + std::string msg = StrPrintf( "Initialization of the %s tool failed", aTool->GetName().c_str() ); + + DisplayError( NULL, wxString::FromUTF8( msg.c_str() ) ); // Unregister the tool m_toolState.erase( aTool );
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp