From a190b4fc846ae05344c5b4fe76d0883bcfeb7d71 Mon Sep 17 00:00:00 2001 From: f0rt Date: Tue, 6 Sep 2016 18:48:32 +0000 Subject: [PATCH] Make WinWStrDupFromWC endian agnostic (Patch #273) git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6783 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/Tests/winchar.cpp | 6 +++--- Source/winchar.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) 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 }