diff --git a/Source/Tests/winchar.cpp b/Source/Tests/winchar.cpp index 6fdb3bce..e3b24754 100644 --- a/Source/Tests/winchar.cpp +++ b/Source/Tests/winchar.cpp @@ -35,15 +35,15 @@ public: WINWCHAR test[] = { _x('t'), _x('e'), _x('s'), _x('t'), 0 }; WINWCHAR *dyn = WinWStrDupFromTChar(_T("test")); - CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, 5) ); + CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, sizeof(test)) ); free(dyn); dyn = WinWStrDupFromChar("test"); - CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, 5) ); + CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, sizeof(test)) ); free(dyn); dyn = WinWStrDupFromWC(L"test"); - CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, 5) ); + CPPUNIT_ASSERT_EQUAL( 0, memcmp(test, dyn, sizeof(test)) ); free(dyn); } diff --git a/Source/winchar.cpp b/Source/winchar.cpp index 57013284..864b3862 100644 --- a/Source/winchar.cpp +++ b/Source/winchar.cpp @@ -111,7 +111,7 @@ WINWCHAR* WinWStrDupFromWC(const wchar_t *s) // NOTE: Anything outside the ASCII range will not convert correctly! size_t cch = wcslen(s); WINWCHAR* p = (WINWCHAR*) malloc(++cch * 2); - if (p) for (size_t i = 0; i < cch; ++i) p[i] = (unsigned char) s[i]; + if (p) for (size_t i = 0; i < cch; ++i) p[i] = FIX_ENDIAN_INT16(s[i]); return p; #endif }