comctl32/dpa: Don't use start index on searching sorted array

Nikolay Sivov bunglehead at gmail.com
Wed Jul 15 15:52:40 CDT 2009


Changelog:
    - Don't use start index on searching sorted array

>From 5c0e85c8a405e4ac6fce7d8b6d261c77a999d74b Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Wed, 15 Jul 2009 23:59:25 +0400
Subject: Don't use start index on searching sorted array

---
 dlls/comctl32/dpa.c       |    3 ++-
 dlls/comctl32/tests/dpa.c |    4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/comctl32/dpa.c b/dlls/comctl32/dpa.c
index bbad10d..43f2a3a 100644
--- a/dlls/comctl32/dpa.c
+++ b/dlls/comctl32/dpa.c
@@ -802,7 +802,8 @@ INT WINAPI DPA_Search (const HDPA hdpa, LPVOID pFind, INT nStart,
         INT l, r, x, n;
         LPVOID *lpPtr;
 
-        l = (nStart == -1) ? 0 : nStart;
+        /* for binary search ignore start index */
+        l = 0;
         r = hdpa->nItemCount - 1;
         lpPtr = hdpa->ptrs;
         while (r >= l) {
diff --git a/dlls/comctl32/tests/dpa.c b/dlls/comctl32/tests/dpa.c
index ed28119..741aeb6 100644
--- a/dlls/comctl32/tests/dpa.c
+++ b/dlls/comctl32/tests/dpa.c
@@ -289,9 +289,9 @@ static void test_dpa(void)
         ok(j == DPA_ERR, "j=%d\n", j);
         /* ... but for a binary search it's ignored */
         j = pDPA_Search(dpa, (PVOID)(INT_PTR)i, i+1, CB_CmpLT, 0xdeadbeef, DPAS_SORTED);
-        todo_wine ok(j+1 == i, "j=%d i=%d\n", j, i);
+        ok(j+1 == i, "j=%d i=%d\n", j, i);
     }
-    
+
     /* Try to get the index of a nonexistent item */
     i = pDPA_GetPtrIndex(dpa, (PVOID)7);
     ok(i == DPA_ERR, "i=%d\n", i);
-- 
1.5.6.5





More information about the wine-patches mailing list