kernel32: Avoid hardcoding the Unicode string literal lengths.

Francois Gouget fgouget at free.fr
Fri Dec 16 06:08:23 CST 2011


Also mark a couple of strings as static const and simplify computing some buffer sizes.
---
 dlls/kernel32/console.c        |    3 +--
 dlls/kernel32/tests/atom.c     |    8 ++++----
 dlls/kernel32/tests/codepage.c |    4 ++--
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
index 4a4d009..5496f9d 100644
--- a/dlls/kernel32/console.c
+++ b/dlls/kernel32/console.c
@@ -2445,8 +2445,7 @@ BOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput, LPCVOID lpBuffer, DWORD nNumber
 		break;
 	    case '\t':
 	        {
-		    WCHAR tmp[8] = {' ',' ',' ',' ',' ',' ',' ',' '};
-
+		    static const WCHAR tmp[] = {' ',' ',' ',' ',' ',' ',' ',' '};
 		    if (!write_block(hConsoleOutput, &csbi, mode, tmp,
 				     ((csbi.dwCursorPosition.X + 8) & ~7) - csbi.dwCursorPosition.X))
 			goto the_end;
diff --git a/dlls/kernel32/tests/atom.c b/dlls/kernel32/tests/atom.c
index 15ef04c..a0f99d1 100644
--- a/dlls/kernel32/tests/atom.c
+++ b/dlls/kernel32/tests/atom.c
@@ -168,11 +168,11 @@ static void test_get_atom_name(void)
 
     if (unicode_OS)
     {
-        static const WCHAR sampleW[10] = {'.','.','.','.','.','.','.','.','.','.'};
+        static const WCHAR sampleW[] = {'.','.','.','.','.','.','.','.','.','.'};
 
         for (i = 0; i < 10; i++) bufW[i] = '.';
         ok( !GlobalGetAtomNameW( atom, bufW, 0 ), "succeeded\n" );
-        ok( !memcmp( bufW, sampleW, 10 * sizeof(WCHAR) ), "should not touch buffer\n" );
+        ok( !memcmp( bufW, sampleW, sizeof(sampleW) ), "should not touch buffer\n" );
     }
 
     /* Test integer atoms */
@@ -442,11 +442,11 @@ static void test_local_get_atom_name(void)
 
     if (unicode_OS)
     {
-        static const WCHAR sampleW[10] = {'.','.','.','.','.','.','.','.','.','.'};
+        static const WCHAR sampleW[] = {'.','.','.','.','.','.','.','.','.','.'};
 
         for (i = 0; i < 10; i++) bufW[i] = '.';
         ok( !GetAtomNameW( atom, bufW, 0 ), "succeeded\n" );
-        ok( !memcmp( bufW, sampleW, 10 * sizeof(WCHAR) ), "should not touch buffer\n" );
+        ok( !memcmp( bufW, sampleW, sizeof(sampleW) ), "should not touch buffer\n" );
     }
 
     /* Test integer atoms */
diff --git a/dlls/kernel32/tests/codepage.c b/dlls/kernel32/tests/codepage.c
index 8f9c4e1..61bcf54 100644
--- a/dlls/kernel32/tests/codepage.c
+++ b/dlls/kernel32/tests/codepage.c
@@ -211,8 +211,8 @@ static void test_string_conversion(LPBOOL bUsedDefaultChar)
     int ret;
     WCHAR wc1 = 228;                           /* Western Windows-1252 character */
     WCHAR wc2 = 1088;                          /* Russian Windows-1251 character not displayable for Windows-1252 */
-    WCHAR wcs[5] = {'T', 'h', 1088, 'i', 0};   /* String with ASCII characters and a Russian character */
-    WCHAR dbwcs[3] = {28953, 25152, 0};        /* String with Chinese (codepage 950) characters */
+    static const WCHAR wcs[] = {'T', 'h', 1088, 'i', 0}; /* String with ASCII characters and a Russian character */
+    static const WCHAR dbwcs[] = {28953, 25152, 0}; /* String with Chinese (codepage 950) characters */
 
     SetLastError(0xdeadbeef);
     ret = WideCharToMultiByte(1252, 0, &wc1, 1, &mbc, 1, NULL, bUsedDefaultChar);
-- 
1.7.7.3




More information about the wine-patches mailing list