MCPcopy Create free account
hub / github.com/ablab/spades / getMemoryBufferForStream

Function getMemoryBufferForStream

ext/src/llvm/MemoryBuffer.cpp:224–241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

222}
223
224static ErrorOr<std::unique_ptr<WritableMemoryBuffer>>
225getMemoryBufferForStream(sys::fs::file_t FD, const Twine &BufferName) {
226 const ssize_t ChunkSize = 4096*4;
227 SmallString<ChunkSize> Buffer;
228 // Read into Buffer until we hit EOF.
229 for (;;) {
230 Buffer.reserve(Buffer.size() + ChunkSize);
231 Expected<size_t> ReadBytes = sys::fs::readNativeFile(
232 FD, makeMutableArrayRef(Buffer.end(), ChunkSize));
233 if (!ReadBytes)
234 return errorToErrorCode(ReadBytes.takeError());
235 if (*ReadBytes == 0)
236 break;
237 Buffer.set_size(Buffer.size() + *ReadBytes);
238 }
239
240 return getMemBufferCopyImpl(Buffer, BufferName);
241}
242
243
244ErrorOr<std::unique_ptr<MemoryBuffer>>

Callers 3

getOpenFileImplFunction · 0.85
getSTDINMethod · 0.85
getFileAsStreamMethod · 0.85

Calls 8

makeMutableArrayRefFunction · 0.85
errorToErrorCodeFunction · 0.85
getMemBufferCopyImplFunction · 0.85
reserveMethod · 0.45
sizeMethod · 0.45
endMethod · 0.45
takeErrorMethod · 0.45
set_sizeMethod · 0.45

Tested by

no test coverage detected