| 108 | } |
| 109 | |
| 110 | char* TChunkedOutputStream::Preallocate(size_t size) |
| 111 | { |
| 112 | size_t available = CurrentChunk_.Capacity() - CurrentChunk_.Size(); |
| 113 | if (available < size) { |
| 114 | FinishedSize_ += CurrentChunk_.Size(); |
| 115 | FinishedChunks_.push_back(TrackMemory( |
| 116 | MemoryUsageTracker_, |
| 117 | TSharedRef::FromBlob(std::move(CurrentChunk_)))); |
| 118 | |
| 119 | CurrentReserveSize_ = std::min(2 * CurrentReserveSize_, MaxReserveSize_); |
| 120 | |
| 121 | CurrentChunk_.Reserve(std::max(RoundUpToPage(size), CurrentReserveSize_)); |
| 122 | } |
| 123 | UpdateCurrentChunkMemoryUsage(); |
| 124 | return CurrentChunk_.End(); |
| 125 | } |
| 126 | |
| 127 | void TChunkedOutputStream::Advance(size_t size) |
| 128 | { |
nothing calls this directly
no test coverage detected