Juan Lang : quartz: Don't crash if sample allocation fails.

Alexandre Julliard julliard at winehq.org
Fri Aug 28 10:18:26 CDT 2009


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Aug 27 09:04:50 2009 -0700

quartz: Don't crash if sample allocation fails.

---

 dlls/quartz/mpegsplit.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/dlls/quartz/mpegsplit.c b/dlls/quartz/mpegsplit.c
index 14d01a1..e44a10f 100644
--- a/dlls/quartz/mpegsplit.c
+++ b/dlls/quartz/mpegsplit.c
@@ -202,20 +202,20 @@ static HRESULT FillBuffer(MPEGSplitterImpl *This, IMediaSample *pCurrentSample)
             LONGLONG rtSampleStart = pin->rtNext - MEDIATIME_FROM_BYTES(4);
             LONGLONG rtSampleStop = rtSampleStart + MEDIATIME_FROM_BYTES(length + 4);
 
-            hr = IMemAllocator_GetBuffer(pin->pAlloc, &sample, NULL, NULL, 0);
-
             if (rtSampleStop > pin->rtStop)
                 rtSampleStop = MEDIATIME_FROM_BYTES(ALIGNUP(BYTES_FROM_MEDIATIME(pin->rtStop), pin->cbAlign));
 
-            IMediaSample_SetTime(sample, &rtSampleStart, &rtSampleStop);
-            IMediaSample_SetPreroll(sample, 0);
-            IMediaSample_SetDiscontinuity(sample, 0);
-            IMediaSample_SetSyncPoint(sample, 1);
-            pin->rtCurrent = rtSampleStart;
-            pin->rtNext = rtSampleStop;
-
+            hr = IMemAllocator_GetBuffer(pin->pAlloc, &sample, NULL, NULL, 0);
             if (SUCCEEDED(hr))
+            {
+                IMediaSample_SetTime(sample, &rtSampleStart, &rtSampleStop);
+                IMediaSample_SetPreroll(sample, 0);
+                IMediaSample_SetDiscontinuity(sample, 0);
+                IMediaSample_SetSyncPoint(sample, 1);
+                pin->rtCurrent = rtSampleStart;
+                pin->rtNext = rtSampleStop;
                 hr = IAsyncReader_Request(pin->pReader, sample, 0);
+            }
             if (FAILED(hr))
                 FIXME("o_Ox%08x\n", hr);
         }




More information about the wine-cvs mailing list