diff --git a/include/wx/strconv.h b/include/wx/strconv.h index ae701a15e5..53b74ca6cc 100644 --- a/include/wx/strconv.h +++ b/include/wx/strconv.h @@ -134,9 +134,10 @@ public: } private: - virtual wxCharBuffer GetMBNul(size_t *nulLen) const + virtual const char *GetMBNul(size_t *nulLen) const { - return m_conv->GetMBNul(nulLen); + // cast needed to call a private function + return ((wxConvBrokenFileNames *)m_conv)->GetMBNul(nulLen); } diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index dfc8a40dac..f52144b275 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -214,11 +214,9 @@ wxMBConv::cMB2WC(const char *in, size_t inLen, size_t *outLen) const // not the most efficient algorithm but it shouldn't matter as normally // there are not many NULs in the string and so normally memcmp() // should stop on the first character - for ( const char *p = in; ; p++ ) - { - if ( memcmp(p, nul, nulLen) == 0 ) - break; - } + const char *p = in; + while ( memcmp(p, nul, nulLen) != 0 ) + p++; inLen = p - in + nulLen; } @@ -1658,7 +1656,7 @@ const char *wxMBConv_iconv::GetMBNul(size_t *nulLen) const size_t inLen = 1, outLen = WXSIZEOF(m_nulBuf); self->m_nulLen = iconv(w2m, ICONV_CHAR_CAST(L""), &inLen, - &self->m_nulBuf, &outLen); + (char **)&self->m_nulBuf, &outLen); } *nulLen = m_nulLen;