MCPcopy Create free account
hub / github.com/abbeycode/UnrarKit / ReadBuffer

Method ReadBuffer

Libraries/unrar/qopen.cpp:206–231  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

204
205
206uint QuickOpen::ReadBuffer()
207{
208 int64 SavePos=Arc->Tell();
209 Arc->File::Seek(RawDataStart+RawDataPos,SEEK_SET);
210 size_t SizeToRead=(size_t)Min(RawDataSize-RawDataPos,MaxBufSize-ReadBufSize);
211 if (Arc->SubHead.Encrypted)
212 SizeToRead &= ~CRYPT_BLOCK_MASK;
213 int ReadSize=0;
214 if (SizeToRead!=0)
215 {
216 ReadSize=Arc->File::Read(Buf+ReadBufSize,SizeToRead);
217 if (ReadSize<=0)
218 ReadSize=0;
219 else
220 {
221#ifndef RAR_NOCRYPT
222 if (Arc->SubHead.Encrypted)
223 Crypt.DecryptBlock(Buf+ReadBufSize,ReadSize & ~CRYPT_BLOCK_MASK);
224#endif
225 RawDataPos+=ReadSize;
226 ReadBufSize+=ReadSize;
227 }
228 }
229 Arc->Seek(SavePos,SEEK_SET);
230 return ReadSize;
231}
232
233
234// Fill RawRead object from buffer.

Callers

nothing calls this directly

Calls 3

DecryptBlockMethod · 0.80
TellMethod · 0.45
SeekMethod · 0.45

Tested by

no test coverage detected