Dmitry Timoshkov : scrrun: IEnumVARIANT:: Next should stop once it has enumerated the asked number the folder elements.
Alexandre Julliard
julliard at winehq.org
Wed Jan 29 14:53:33 CST 2014
Module: wine
Branch: master
Commit: 553078161dbddf7cca44837663ef6858a62dd760
URL: http://source.winehq.org/git/wine.git/?a=commit;h=553078161dbddf7cca44837663ef6858a62dd760
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Tue Jan 28 11:36:11 2014 +0900
scrrun: IEnumVARIANT::Next should stop once it has enumerated the asked number the folder elements.
---
dlls/scrrun/filesystem.c | 5 +++--
dlls/scrrun/tests/filesystem.c | 9 ---------
2 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/dlls/scrrun/filesystem.c b/dlls/scrrun/filesystem.c
index 39b3241..630e7e3 100644
--- a/dlls/scrrun/filesystem.c
+++ b/dlls/scrrun/filesystem.c
@@ -526,8 +526,6 @@ static HRESULT WINAPI foldercoll_enumvariant_Next(IEnumVARIANT *iface, ULONG cel
do
{
- if (count >= celt) break;
-
if (is_dir_data(&data))
{
IFolder *folder;
@@ -543,6 +541,9 @@ static HRESULT WINAPI foldercoll_enumvariant_Next(IEnumVARIANT *iface, ULONG cel
V_DISPATCH(&var[count]) = (IDispatch*)folder;
count++;
}
+
+ if (count >= celt) break;
+
} while (FindNextFileW(handle, &data));
if (fetched)
diff --git a/dlls/scrrun/tests/filesystem.c b/dlls/scrrun/tests/filesystem.c
index 02a29e5..c764ae7 100644
--- a/dlls/scrrun/tests/filesystem.c
+++ b/dlls/scrrun/tests/filesystem.c
@@ -885,17 +885,9 @@ static void test_FolderCollection(void)
VariantInit(&var);
fetched = 0;
hr = IEnumVARIANT_Next(enumvar, 1, &var, &fetched);
-if (i == 2) todo_wine
-{
- ok(hr == S_OK, "%d: got 0x%08x\n", i, hr);
- ok(fetched == 1, "%d: got %d\n", i, fetched);
- ok(V_VT(&var) == VT_DISPATCH, "%d: got type %d\n", i, V_VT(&var));
-} else
-{
ok(hr == S_OK, "%d: got 0x%08x\n", i, hr);
ok(fetched == 1, "%d: got %d\n", i, fetched);
ok(V_VT(&var) == VT_DISPATCH, "%d: got type %d\n", i, V_VT(&var));
-}
hr = IDispatch_QueryInterface(V_DISPATCH(&var), &IID_IFolder, (void**)&folder);
ok(hr == S_OK, "got 0x%08x\n", hr);
@@ -915,7 +907,6 @@ if (i == 2) todo_wine
VariantClear(&var);
}
-todo_wine
ok(found_a == 1 && found_b == 1 && found_c == 1,
"each folder should be found 1 time instead of %d/%d/%d\n",
found_a, found_b, found_c);
More information about the wine-cvs
mailing list