fix binary incompatiblities in wxHtmlHelpController's cached data bytestream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -308,21 +308,33 @@ inline static wxInt32 CacheReadInt32(wxInputStream *f)
|
|||||||
|
|
||||||
inline static void CacheWriteString(wxOutputStream *f, const wxChar *str)
|
inline static void CacheWriteString(wxOutputStream *f, const wxChar *str)
|
||||||
{
|
{
|
||||||
size_t len = wxStrlen(str)+1;
|
#if wxUSE_UNICODE
|
||||||
|
wxWX2MBbuf mbstr(wxConvUTF8.cWX2MB(str));
|
||||||
|
#else
|
||||||
|
const wxChar *mbstr = str;
|
||||||
|
#endif
|
||||||
|
size_t len = strlen(mbstr)+1;
|
||||||
CacheWriteInt32(f, len);
|
CacheWriteInt32(f, len);
|
||||||
f->Write(str, len * sizeof(wxChar));
|
f->Write(mbstr, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline static wxChar *CacheReadString(wxInputStream *f)
|
inline static wxChar* CacheReadString(wxInputStream *f)
|
||||||
{
|
{
|
||||||
wxChar *str;
|
char *str;
|
||||||
size_t len = (size_t)CacheReadInt32(f);
|
size_t len = (size_t)CacheReadInt32(f);
|
||||||
str = new wxChar[len];
|
str = new char[len];
|
||||||
f->Read(str, len * sizeof(wxChar));
|
f->Read(str, len);
|
||||||
|
#if !wxUSE_UNICODE
|
||||||
return str;
|
return str;
|
||||||
|
#else
|
||||||
|
wxMB2WXbuf wxstr(wxConvUTF8.cMB2WX(str));
|
||||||
|
wxChar *outstr = new wxChar[wxStrlen(wxstr)+1];
|
||||||
|
wxStrcpy(outstr, wxstr);
|
||||||
|
return outstr;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CURRENT_CACHED_BOOK_VERSION 2
|
#define CURRENT_CACHED_BOOK_VERSION 3
|
||||||
|
|
||||||
bool wxHtmlHelpData::LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f)
|
bool wxHtmlHelpData::LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user