ole32: Fix various missing Release calls on monikers.

This commit is contained in:
Eric Pouech 2009-08-29 14:23:48 +02:00 committed by Alexandre Julliard
parent 35d6217def
commit 09adcee263
1 changed files with 10 additions and 18 deletions

View File

@ -552,6 +552,7 @@ CompositeMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
IEnumMoniker *enumMoniker1,*enumMoniker2; IEnumMoniker *enumMoniker1,*enumMoniker2;
IMoniker *tempMk1,*tempMk2; IMoniker *tempMk1,*tempMk2;
HRESULT res1,res2,res; HRESULT res1,res2,res;
BOOL done;
TRACE("(%p,%p)\n",iface,pmkOtherMoniker); TRACE("(%p,%p)\n",iface,pmkOtherMoniker);
@ -567,27 +568,18 @@ CompositeMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
IMoniker_Enum(iface,TRUE,&enumMoniker2); IMoniker_Enum(iface,TRUE,&enumMoniker2);
while(1){ do {
res1=IEnumMoniker_Next(enumMoniker1,1,&tempMk1,NULL); res1=IEnumMoniker_Next(enumMoniker1,1,&tempMk1,NULL);
res2=IEnumMoniker_Next(enumMoniker2,1,&tempMk2,NULL); res2=IEnumMoniker_Next(enumMoniker2,1,&tempMk2,NULL);
if((res1==S_OK)&&(res2==S_OK)){ if((res1==S_OK)&&(res2==S_OK)){
done = (res = IMoniker_IsEqual(tempMk1,tempMk2)) == S_FALSE;
if(IMoniker_IsEqual(tempMk1,tempMk2)==S_FALSE){
res= S_FALSE;
break;
}
else
continue;
} }
else if ( (res1==S_FALSE) && (res2==S_FALSE) ){ else
res = S_OK; {
break; res = (res1==S_FALSE) && (res2==S_FALSE);
} done = TRUE;
else{
res = S_FALSE;
break;
} }
if (res1==S_OK) if (res1==S_OK)
@ -595,7 +587,7 @@ CompositeMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
if (res2==S_OK) if (res2==S_OK)
IMoniker_Release(tempMk2); IMoniker_Release(tempMk2);
} } while (!done);
IEnumMoniker_Release(enumMoniker1); IEnumMoniker_Release(enumMoniker1);
IEnumMoniker_Release(enumMoniker2); IEnumMoniker_Release(enumMoniker2);
@ -989,12 +981,12 @@ static VOID GetAfterCommonPrefix(IMoniker* pGenMk,IMoniker* commonMk,IMoniker**
nbRestMk++; nbRestMk++;
IMoniker_Release(tempMk1); IMoniker_Release(tempMk1);
IMoniker_Release(tempMk1); IMoniker_Release(tempMk2);
break; break;
} }
IMoniker_Release(tempMk1); IMoniker_Release(tempMk1);
IMoniker_Release(tempMk1); IMoniker_Release(tempMk2);
} }
} }
else{ else{