Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 // LimitedStreams.cpp
3 #include "StdAfx.h"
5 #include "LimitedStreams.h"
6 #include "../../Common/Defs.h"
8 void CLimitedSequentialInStream::Init(ISequentialInStream *stream, UInt64 streamSize)
9 {
10 _stream = stream;
11 _size = streamSize;
12 }
14 STDMETHODIMP CLimitedSequentialInStream::Read(void *data, UInt32 size, UInt32 *processedSize)
15 {
16 UInt32 processedSizeReal;
17 UInt32 sizeToRead = UInt32(MyMin(_size, UInt64(size)));
18 HRESULT result = _stream->Read(data, sizeToRead, &processedSizeReal);
19 _size -= processedSizeReal;
20 if(processedSize != NULL)
21 *processedSize = processedSizeReal;
22 return result;
23 }