| 98 | } |
| 99 | |
| 100 | void TIBMemStream::CreateBlocks(const TVector<TBlockSizes>& arr) { |
| 101 | int blockCount = arr.ysize(); |
| 102 | Blocks.resize(blockCount); |
| 103 | i64 offset = 0; |
| 104 | for (int i = 0; i < blockCount; ++i) { |
| 105 | const TBlockSizes& src = arr[i]; |
| 106 | TBlock& blk = Blocks[i]; |
| 107 | blk.BufSize = src.BufSize; |
| 108 | blk.DataSize = src.DataSize; |
| 109 | blk.Mem = MemPool->Alloc(blk.BufSize); |
| 110 | blk.StartOffset = offset; |
| 111 | offset += blk.DataSize; |
| 112 | } |
| 113 | CurBlock = 0; |
| 114 | CurBlockOffset = 0; |
| 115 | } |
| 116 | |
| 117 | void TIBMemStream::Clear() { |
| 118 | Blocks.resize(0); |