shell32: Add a test to show the IShellLink_GetIDList returns a copy of the IDList, remove an incorrect comment and fix a memory leak.

Found by Valgrind.
This commit is contained in:
Huw Davies 2010-01-22 12:08:47 +00:00 committed by Alexandre Julliard
parent 36b654e695
commit 06ad4ce1c8
1 changed files with 11 additions and 1 deletions

View File

@ -207,6 +207,7 @@ static void test_get_set(void)
} }
if (ret) if (ret)
ok(lstrcmpi(buffer,str)==0, "GetIDList returned '%s'\n", buffer); ok(lstrcmpi(buffer,str)==0, "GetIDList returned '%s'\n", buffer);
pILFree(tmp_pidl);
} }
pidl=path_to_pidl(mypath); pidl=path_to_pidl(mypath);
@ -214,6 +215,8 @@ static void test_get_set(void)
if (pidl) if (pidl)
{ {
LPITEMIDLIST second_pidl;
r = IShellLinkA_SetIDList(sl, pidl); r = IShellLinkA_SetIDList(sl, pidl);
ok(SUCCEEDED(r), "SetIDList failed (0x%08x)\n", r); ok(SUCCEEDED(r), "SetIDList failed (0x%08x)\n", r);
@ -223,7 +226,14 @@ static void test_get_set(void)
ok(tmp_pidl && pILIsEqual(pidl, tmp_pidl), ok(tmp_pidl && pILIsEqual(pidl, tmp_pidl),
"GetIDList returned an incorrect pidl\n"); "GetIDList returned an incorrect pidl\n");
/* tmp_pidl is owned by IShellLink so we don't free it */ r = IShellLinkA_GetIDList(sl, &second_pidl);
ok(SUCCEEDED(r), "GetIDList failed (0x%08x)\n", r);
ok(second_pidl && pILIsEqual(pidl, second_pidl),
"GetIDList returned an incorrect pidl\n");
ok(second_pidl != tmp_pidl, "pidls are the same\n");
pILFree(second_pidl);
pILFree(tmp_pidl);
pILFree(pidl); pILFree(pidl);
strcpy(buffer,"garbage"); strcpy(buffer,"garbage");