Henri Verbeet : avifil32: Only modify the stream info after a succesful allocation in AVIFILE_AddFrame ().

Alexandre Julliard julliard at winehq.org
Wed Jan 6 13:00:56 CST 2010


Module: wine
Branch: master
Commit: 63aa5418c1bec4992f75c984c54a8bee23b92fec
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=63aa5418c1bec4992f75c984c54a8bee23b92fec

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Jan  5 21:29:01 2010 +0100

avifil32: Only modify the stream info after a succesful allocation in AVIFILE_AddFrame().

---

 dlls/avifil32/avifile.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/dlls/avifil32/avifile.c b/dlls/avifil32/avifile.c
index 48c3662..ea6d6b1 100644
--- a/dlls/avifil32/avifile.c
+++ b/dlls/avifil32/avifile.c
@@ -1381,10 +1381,8 @@ static HRESULT AVIFILE_AddFrame(IAVIStreamImpl *This, DWORD ckid, DWORD size, DW
       ERR(": found palette change in non-video stream!\n");
       return AVIERR_BADFORMAT;
     }
-    This->sInfo.dwFlags |= AVISTREAMINFO_FORMATCHANGES;
-    This->sInfo.dwFormatChangeCount++;
 
-    if (This->idxFmtChanges == NULL || This->nIdxFmtChanges < This->sInfo.dwFormatChangeCount) {
+    if (This->idxFmtChanges == NULL || This->nIdxFmtChanges <= This->sInfo.dwFormatChangeCount) {
       This->nIdxFmtChanges += 16;
       if (This->idxFmtChanges == NULL)
 	This->idxFmtChanges =
@@ -1397,7 +1395,8 @@ static HRESULT AVIFILE_AddFrame(IAVIStreamImpl *This, DWORD ckid, DWORD size, DW
 	return AVIERR_MEMORY;
     }
 
-    n = This->sInfo.dwFormatChangeCount;
+    This->sInfo.dwFlags |= AVISTREAMINFO_FORMATCHANGES;
+    n = ++This->sInfo.dwFormatChangeCount;
     This->idxFmtChanges[n].ckid          = This->lLastFrame;
     This->idxFmtChanges[n].dwFlags       = 0;
     This->idxFmtChanges[n].dwChunkOffset = offset;




More information about the wine-cvs mailing list