From a94656538f73e5097b5011b02ee825c8480a6d74 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Wed, 18 Aug 2010 12:59:52 +0000 Subject: [PATCH] Use common inline version of wxHexToDec git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/utils.h | 19 +++++++++++++++++++ src/common/utilscmn.cpp | 19 +++++-------------- src/richtext/richtextbuffer.cpp | 20 +------------------- 3 files changed, 25 insertions(+), 33 deletions(-) diff --git a/include/wx/utils.h b/include/wx/utils.h index 533e8a489e..32bed656c3 100644 --- a/include/wx/utils.h +++ b/include/wx/utils.h @@ -252,6 +252,25 @@ WXDLLIMPEXP_BASE long wxNewId(); // Convert 2-digit hex number to decimal WXDLLIMPEXP_BASE int wxHexToDec(const wxString& buf); +// Convert 2-digit hex number to decimal +inline int wxHexToDec(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 ); +} + + // Convert decimal integer to 2-character hex string WXDLLIMPEXP_BASE void wxDecToHex(int dec, wxChar *buf); WXDLLIMPEXP_BASE void wxDecToHex(int dec, char* ch1, char* ch2); diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp index 53791d386f..2667f5885b 100644 --- a/src/common/utilscmn.cpp +++ b/src/common/utilscmn.cpp @@ -113,21 +113,12 @@ static const wxChar hexArray[] = wxT("0123456789ABCDEF"); // Convert 2-digit hex number to decimal -int wxHexToDec(const wxString& buf) +int wxHexToDec(const wxString& str) { - int firstDigit, secondDigit; - - if (buf.GetChar(0) >= wxT('A')) - firstDigit = buf.GetChar(0) - wxT('A') + 10; - else - firstDigit = buf.GetChar(0) - wxT('0'); - - if (buf.GetChar(1) >= wxT('A')) - secondDigit = buf.GetChar(1) - wxT('A') + 10; - else - secondDigit = buf.GetChar(1) - wxT('0'); - - return (firstDigit & 0xF) * 16 + (secondDigit & 0xF ); + char buf[2]; + buf[0] = str.GetChar(0); + buf[1] = str.GetChar(1); + return wxHexToDec((const char*) buf); } // Convert decimal integer to 2-character hex string diff --git a/src/richtext/richtextbuffer.cpp b/src/richtext/richtextbuffer.cpp index e96a98d078..ab926437d8 100644 --- a/src/richtext/richtextbuffer.cpp +++ b/src/richtext/richtextbuffer.cpp @@ -7621,24 +7621,6 @@ 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) { @@ -7658,7 +7640,7 @@ bool wxRichTextImageBlock::ReadHex(wxInputStream& stream, int length, wxBitmapTy str[0] = (char)stream.GetC(); str[1] = (char)stream.GetC(); - m_data[i] = (unsigned char)wxRichTextHexToDec(str); + m_data[i] = (unsigned char)wxHexToDec(str); } m_dataSize = dataSize; -- 2.45.2