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

Method UnpWriteArea

Libraries/unrar/unpack50.cpp:486–512  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

484
485
486void Unpack::UnpWriteArea(size_t StartPtr,size_t EndPtr)
487{
488 if (EndPtr!=StartPtr)
489 UnpSomeRead=true;
490 if (EndPtr<StartPtr)
491 UnpAllBuf=true;
492
493 if (Fragmented)
494 {
495 size_t SizeToWrite=(EndPtr-StartPtr) & MaxWinMask;
496 while (SizeToWrite>0)
497 {
498 size_t BlockSize=FragWindow.GetBlockSize(StartPtr,SizeToWrite);
499 UnpWriteData(&FragWindow[StartPtr],BlockSize);
500 SizeToWrite-=BlockSize;
501 StartPtr=(StartPtr+BlockSize) & MaxWinMask;
502 }
503 }
504 else
505 if (EndPtr<StartPtr)
506 {
507 UnpWriteData(Window+StartPtr,MaxWinSize-StartPtr);
508 UnpWriteData(Window,EndPtr);
509 }
510 else
511 UnpWriteData(Window+StartPtr,EndPtr-StartPtr);
512}
513
514
515void Unpack::UnpWriteData(byte *Data,size_t Size)

Callers

nothing calls this directly

Calls 1

GetBlockSizeMethod · 0.80

Tested by

no test coverage detected