Module: wine Branch: master Commit: 219f477a050a0a1d0a8861a104e420ef4f9ed3d4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=219f477a050a0a1d0a8861a104...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Sat Jan 29 11:54:51 2011 +0300
shlwapi/tests: Reset cookie after service revoked (Valgrind).
---
dlls/shlwapi/ordinal.c | 3 +++ dlls/shlwapi/tests/ordinal.c | 5 +++++ 2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c index 3c00b8e..fbfed99 100644 --- a/dlls/shlwapi/ordinal.c +++ b/dlls/shlwapi/ordinal.c @@ -1571,7 +1571,10 @@ HRESULT WINAPI IUnknown_ProfferService(IUnknown *lpUnknown, REFGUID service, ISe if (pService) hr = IProfferService_ProfferService(proffer, service, pService, pCookie); else + { hr = IProfferService_RevokeService(proffer, *pCookie); + *pCookie = 0; + }
IProfferService_Release(proffer); } diff --git a/dlls/shlwapi/tests/ordinal.c b/dlls/shlwapi/tests/ordinal.c index 0125ce4..fc788b7 100644 --- a/dlls/shlwapi/tests/ordinal.c +++ b/dlls/shlwapi/tests/ordinal.c @@ -2362,6 +2362,7 @@ static ULONG WINAPI IProfferServiceImpl_Release(IProfferService *iface) static HRESULT WINAPI IProfferServiceImpl_ProfferService(IProfferService *iface, REFGUID service, IServiceProvider *pService, DWORD *pCookie) { + *pCookie = 0xdeadbeef; add_call(&trace_got, 3, service, pService, pCookie, 0, 0); return S_OK; } @@ -2419,8 +2420,10 @@ static void test_IUnknown_ProfferService(void) add_call(&trace_expected, 3, &dummy_serviceid, provider, &cookie, 0, 0);
init_call_trace(&trace_got); + cookie = 0; hr = pIUnknown_ProfferService((IUnknown*)proff, &dummy_serviceid, provider, &cookie); ok(hr == S_OK, "got 0x%08x\n", hr); + ok(cookie == 0xdeadbeef, "got %x\n", cookie);
ok_trace(&trace_expected, &trace_got); free_call_trace(&trace_got); @@ -2434,8 +2437,10 @@ static void test_IUnknown_ProfferService(void) add_call(&trace_expected, 4, (void*)(DWORD_PTR)cookie, 0, 0, 0, 0);
init_call_trace(&trace_got); + ok(cookie != 0, "got %x\n", cookie); hr = pIUnknown_ProfferService((IUnknown*)proff, &dummy_serviceid, 0, &cookie); ok(hr == S_OK, "got 0x%08x\n", hr); + ok(cookie == 0, "got %x\n", cookie); ok_trace(&trace_expected, &trace_got); free_call_trace(&trace_got); free_call_trace(&trace_expected);