Nikolay Sivov : shell32: Fix interface leak while adding tree items.
Alexandre Julliard
julliard at winehq.org
Thu Jan 20 12:41:21 CST 2011
Module: wine
Branch: master
Commit: 99f0c0a16dbbabdb1047ea03f8d58a5f917d5ce4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=99f0c0a16dbbabdb1047ea03f8d58a5f917d5ce4
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu Jan 20 01:35:25 2011 +0300
shell32: Fix interface leak while adding tree items.
---
dlls/shell32/brsfolder.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 77c55c8..e990c61 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -414,7 +414,7 @@ static void FillTreeView( browse_info *info, IShellFolder * lpsf,
SetCapture( hwnd );
SetCursor( LoadCursorA( 0, (LPSTR)IDC_WAIT ) );
- while (NOERROR == IEnumIDList_Next(lpe,1,&pidlTemp,&ulFetched))
+ while (S_OK == IEnumIDList_Next(lpe,1,&pidlTemp,&ulFetched))
{
ULONG ulAttrs = SFGAO_HASSUBFOLDER | SFGAO_FOLDER;
IEnumIDList* pEnumIL = NULL;
@@ -521,14 +521,18 @@ static LRESULT BrsFolder_Treeview_Expand( browse_info *info, NMTREEVIEWW *pnmtv
if (!_ILIsEmpty(lptvid->lpi)) {
r = IShellFolder_BindToObject( lptvid->lpsfParent, lptvid->lpi, 0,
- &IID_IShellFolder, (LPVOID *)&lpsf2 );
+ &IID_IShellFolder, (void**)&lpsf2 );
} else {
lpsf2 = lptvid->lpsfParent;
- r = IShellFolder_AddRef(lpsf2);
+ IShellFolder_AddRef(lpsf2);
+ r = S_OK;
}
if (SUCCEEDED(r))
+ {
FillTreeView( info, lpsf2, lptvid->lpifq, pnmtv->itemNew.hItem, lptvid->pEnumIL);
+ IShellFolder_Release( lpsf2 );
+ }
/* My Computer is already sorted and trying to do a simple text
* sort will only mess things up */
More information about the wine-cvs
mailing list