Large image-loading speedup and small attribute-loading speedup

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2010-08-17 10:10:39 +00:00
parent 3f16e51be8
commit dd71bfb992
2 changed files with 50 additions and 31 deletions

View File

@@ -7621,6 +7621,24 @@ bool wxRichTextImageBlock::WriteHex(wxOutputStream& stream)
return true;
}
inline int wxRichTextHexToDec(const char* buf)
{
int firstDigit, secondDigit;
if (buf[0] >= 'A')
firstDigit = buf[0] - 'A' + 10;
else
firstDigit = buf[0] - '0';
if (buf[1] >= 'A')
secondDigit = buf[1] - 'A' + 10;
else
secondDigit = buf[1] - '0';
return (firstDigit & 0xF) * 16 + (secondDigit & 0xF );
}
// Read data in hex from a stream
bool wxRichTextImageBlock::ReadHex(wxInputStream& stream, int length, wxBitmapType imageType)
{
@@ -7640,7 +7658,7 @@ bool wxRichTextImageBlock::ReadHex(wxInputStream& stream, int length, wxBitmapTy
str[0] = (char)stream.GetC();
str[1] = (char)stream.GetC();
m_data[i] = (unsigned char)wxHexToDec(str);
m_data[i] = (unsigned char)wxRichTextHexToDec(str);
}
m_dataSize = dataSize;