+ // if psz is already in UTF-8, we don't have to do the roundtrip to
+ // wchar_t* and back:
+ if ( conv.IsUTF8() )
+ {
+ // we need to validate the input because UTF8 iterators assume valid
+ // UTF-8 sequence and psz may be invalid:
+ if ( wxStringOperations::IsValidUtf8String(psz, nLength) )
+ {
+ return SubstrBufFromMB(wxCharBuffer::CreateNonOwned(psz), nLength);
+ }
+ // else: do the roundtrip through wchar_t*
+ }
+