Optimize UnescapeString slightly to avoid repeated wxString::at calls
This commit is contained in:
parent
b924c85f80
commit
ff2190630e
|
@ -218,33 +218,36 @@ wxString UnescapeString( const wxString& aSource )
|
||||||
|
|
||||||
for( size_t i = 0; i < sourceLen; ++i )
|
for( size_t i = 0; i < sourceLen; ++i )
|
||||||
{
|
{
|
||||||
if( ( aSource[i] == '$' || aSource[i] == '^' || aSource[i] == '_' )
|
wxUniChar ch = aSource[i];
|
||||||
|
if( ( ch == '$' || ch == '^' || ch == '_' )
|
||||||
&& i + 1 < sourceLen && aSource[i+1] == '{' )
|
&& i + 1 < sourceLen && aSource[i+1] == '{' )
|
||||||
{
|
{
|
||||||
for( ; i < sourceLen; ++i )
|
for( ; i < sourceLen; ++i )
|
||||||
{
|
{
|
||||||
newbuf += aSource[i];
|
ch = aSource[i];
|
||||||
|
newbuf += ch;
|
||||||
|
|
||||||
if( aSource[i] == '}' )
|
if( ch == '}' )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( aSource[i] == '{' )
|
else if( ch == '{' )
|
||||||
{
|
{
|
||||||
wxString token;
|
wxString token;
|
||||||
int depth = 1;
|
int depth = 1;
|
||||||
|
|
||||||
for( i = i + 1; i < sourceLen; ++i )
|
for( i = i + 1; i < sourceLen; ++i )
|
||||||
{
|
{
|
||||||
if( aSource[i] == '{' )
|
ch = aSource[i];
|
||||||
|
if( ch == '{' )
|
||||||
depth++;
|
depth++;
|
||||||
else if( aSource[i] == '}' )
|
else if( ch == '}' )
|
||||||
depth--;
|
depth--;
|
||||||
|
|
||||||
if( depth <= 0 )
|
if( depth <= 0 )
|
||||||
break;
|
break;
|
||||||
else
|
else
|
||||||
token.append( aSource[i] );
|
token.append( ch );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( token == wxS( "dblquote" ) ) newbuf.append( wxS( "\"" ) );
|
if( token == wxS( "dblquote" ) ) newbuf.append( wxS( "\"" ) );
|
||||||
|
@ -268,7 +271,7 @@ wxString UnescapeString( const wxString& aSource )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
newbuf.append( aSource[i] );
|
newbuf.append( ch );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue