From: Bruno Jesus <00cpxxx@gmail.com> Subject: quartz: Simplify a loop and make the code more robust Message-Id: Date: Thu, 3 Sep 2015 21:06:15 +0800 diff --git a/dlls/quartz/avisplit.c b/dlls/quartz/avisplit.c index 6059511..d0316cd 100644 --- a/dlls/quartz/avisplit.c +++ b/dlls/quartz/avisplit.c @@ -1109,15 +1109,14 @@ static HRESULT AVISplitter_InputPin_PreConnect(IPin * iface, IPin * pConnectPin, return E_FAIL; } - pos += sizeof(RIFFCHUNK) + list.cb; - hr = IAsyncReader_SyncRead(This->pReader, pos, sizeof(list), (BYTE *)&list); - - while (list.fcc == ckidAVIPADDING || (list.fcc == FOURCC_LIST && list.fccListType != listtypeAVIMOVIE)) + do { + list.fcc = 0; pos += sizeof(RIFFCHUNK) + list.cb; - hr = IAsyncReader_SyncRead(This->pReader, pos, sizeof(list), (BYTE *)&list); } + while (hr == S_OK && (list.fcc == ckidAVIPADDING || + (list.fcc == FOURCC_LIST && list.fccListType != listtypeAVIMOVIE))); if (list.fcc != FOURCC_LIST) {