msvcr90/tests: Avoid casting away const in comparison functions.
authorAndrew Nguyen <anguyen@codeweavers.com>
Tue, 1 Feb 2011 10:40:14 +0000 (04:40 -0600)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 1 Feb 2011 11:38:57 +0000 (12:38 +0100)
dlls/msvcr90/tests/msvcr90.c

index d4a7262c9dcc3bdc8eb856bbfbd3d4e4c7b1291d..67b00fcc1af4c2ef0f86116b6c4fc8f07db10e85 100644 (file)
@@ -462,25 +462,35 @@ static void test_wcsncat_s(void)
 }
 
 /* Based on dlls/ntdll/tests/string.c */
-static __cdecl int intcomparefunc(void *context, const void *a, const void*b)
+static __cdecl int intcomparefunc(void *context, const void *a, const void *b)
 {
+    const int *p = a, *q = b;
+
     ok (a != b, "must never get the same pointer\n");
     ++*(int *) context;
-    return (*(int*)a) - (*(int*)b);
+
+    return *p - *q;
 }
 
-static __cdecl int charcomparefunc(void *context, const void *a, const void*b)
+static __cdecl int charcomparefunc(void *context, const void *a, const void *b)
 {
+    const char *p = a, *q = b;
+
     ok (a != b, "must never get the same pointer\n");
     ++*(int *) context;
-    return (*(char*)a) - (*(char*)b);
+
+    return *p - *q;
 }
 
-static __cdecl int strcomparefunc(void *context, const void *a, const void*b)
+static __cdecl int strcomparefunc(void *context, const void *a, const void *b)
 {
+    const char * const *p = a;
+    const char * const *q = b;
+
     ok (a != b, "must never get the same pointer\n");
     ++*(int *) context;
-    return lstrcmpA(*(char**)a,*(char**)b);
+
+    return lstrcmpA(*p, *q);
 }
 
 static void test_qsort_s(void)