corrections for buffers

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor 2004-02-08 09:53:50 +00:00
parent 305a0f6057
commit 5c250a1033

View File

@ -1232,15 +1232,15 @@ public:
OSStatus status = noErr ; OSStatus status = noErr ;
ByteCount byteOutLen ; ByteCount byteOutLen ;
ByteCount byteInLen = strlen(psz) ; ByteCount byteInLen = strlen(psz) ;
ByteCount byteBufferLen = n ;
wchar_t *tbuf = NULL ; wchar_t *tbuf = NULL ;
if (buf == NULL) if (buf == NULL)
{ {
n = byteInLen * SIZEOF_WCHAR_T ; n = byteInLen ;
tbuf = (wchar_t*) malloc( n ) ; tbuf = (wchar_t*) malloc( n * SIZEOF_WCHAR_T) ;
} }
ByteCount byteBufferLen = n * SIZEOF_WCHAR_T ;
status = TECConvertText(m_MB2WC_converter, (ConstTextPtr) psz , byteInLen, &byteInLen, status = TECConvertText(m_MB2WC_converter, (ConstTextPtr) psz , byteInLen, &byteInLen,
(TextPtr) (buf ? buf : tbuf) , byteBufferLen, &byteOutLen); (TextPtr) (buf ? buf : tbuf) , byteBufferLen, &byteOutLen);
@ -1259,16 +1259,17 @@ public:
OSStatus status = noErr ; OSStatus status = noErr ;
ByteCount byteOutLen ; ByteCount byteOutLen ;
ByteCount byteInLen = wxWcslen(psz) * SIZEOF_WCHAR_T ; ByteCount byteInLen = wxWcslen(psz) * SIZEOF_WCHAR_T ;
ByteCount byteBufferLen = n ;
char *tbuf = NULL ; char *tbuf = NULL ;
if (buf == NULL) if (buf == NULL)
{ {
n = byteInLen ; // worst case
n = byteInLen * 2 ;
tbuf = (char*) malloc( n ) ; tbuf = (char*) malloc( n ) ;
} }
ByteCount byteBufferLen = n ;
status = TECConvertText(m_WC2MB_converter, (ConstTextPtr) psz , byteInLen, &byteInLen, status = TECConvertText(m_WC2MB_converter, (ConstTextPtr) psz , byteInLen, &byteInLen,
(TextPtr) ( buf ? buf : tbuf ) , byteBufferLen, &byteOutLen); (TextPtr) ( buf ? buf : tbuf ) , byteBufferLen, &byteOutLen);