minor performance tweak

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38530 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2015-05-24 14:12:42 +00:00
parent 76fd87b9a8
commit d9ea43a7a1

View file

@ -2464,16 +2464,29 @@ fillHole(GSStr self, unsigned index, unsigned size)
static inline void
getCharacters_c(GSStr self, unichar *buffer, NSRange aRange)
{
unsigned len = aRange.length;
if (aRange.length)
{
if (NSISOLatin1StringEncoding == internalEncoding)
{
register NSUInteger count = aRange.length;
register NSUInteger base = aRange.location;
if (!len)
return;
while (count-- > 0)
{
buffer[count] = self->_contents.c[base + count];
}
}
else
{
unsigned len = aRange.length;
if (!GSToUnicode(&buffer, &len, self->_contents.c + aRange.location,
aRange.length, internalEncoding, 0, 0))
{
[NSException raise: NSInternalInconsistencyException
format: @"Can't convert to Unicode."];
if (!GSToUnicode(&buffer, &len, self->_contents.c + aRange.location,
aRange.length, internalEncoding, 0, 0))
{
[NSException raise: NSInternalInconsistencyException
format: @"Can't convert to Unicode."];
}
}
}
}