Module: wine Branch: master Commit: 09adcee2635cb8094893933e09bd5de116494cd1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=09adcee2635cb8094893933e09...
Author: Eric Pouech eric.pouech@orange.fr Date: Sat Aug 29 14:23:48 2009 +0200
ole32: Fix various missing Release calls on monikers.
---
dlls/ole32/compositemoniker.c | 28 ++++++++++------------------ 1 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/dlls/ole32/compositemoniker.c b/dlls/ole32/compositemoniker.c index 57fb4e6..5535a97 100644 --- a/dlls/ole32/compositemoniker.c +++ b/dlls/ole32/compositemoniker.c @@ -552,6 +552,7 @@ CompositeMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker) IEnumMoniker *enumMoniker1,*enumMoniker2; IMoniker *tempMk1,*tempMk2; HRESULT res1,res2,res; + BOOL done;
TRACE("(%p,%p)\n",iface,pmkOtherMoniker);
@@ -567,27 +568,18 @@ CompositeMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
IMoniker_Enum(iface,TRUE,&enumMoniker2);
- while(1){ + do {
res1=IEnumMoniker_Next(enumMoniker1,1,&tempMk1,NULL); res2=IEnumMoniker_Next(enumMoniker2,1,&tempMk2,NULL);
if((res1==S_OK)&&(res2==S_OK)){ - - if(IMoniker_IsEqual(tempMk1,tempMk2)==S_FALSE){ - res= S_FALSE; - break; - } - else - continue; + done = (res = IMoniker_IsEqual(tempMk1,tempMk2)) == S_FALSE; } - else if ( (res1==S_FALSE) && (res2==S_FALSE) ){ - res = S_OK; - break; - } - else{ - res = S_FALSE; - break; + else + { + res = (res1==S_FALSE) && (res2==S_FALSE); + done = TRUE; }
if (res1==S_OK) @@ -595,7 +587,7 @@ CompositeMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
if (res2==S_OK) IMoniker_Release(tempMk2); - } + } while (!done);
IEnumMoniker_Release(enumMoniker1); IEnumMoniker_Release(enumMoniker2); @@ -989,12 +981,12 @@ static VOID GetAfterCommonPrefix(IMoniker* pGenMk,IMoniker* commonMk,IMoniker** nbRestMk++;
IMoniker_Release(tempMk1); - IMoniker_Release(tempMk1); + IMoniker_Release(tempMk2);
break; } IMoniker_Release(tempMk1); - IMoniker_Release(tempMk1); + IMoniker_Release(tempMk2); } } else{