diff options
Diffstat (limited to 'include/llvm/ExecutionEngine/ObjectBuffer.h')
-rw-r--r-- | include/llvm/ExecutionEngine/ObjectBuffer.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/include/llvm/ExecutionEngine/ObjectBuffer.h b/include/llvm/ExecutionEngine/ObjectBuffer.h index 81dc88dcd0..071a42b6b7 100644 --- a/include/llvm/ExecutionEngine/ObjectBuffer.h +++ b/include/llvm/ExecutionEngine/ObjectBuffer.h @@ -58,18 +58,23 @@ protected: class ObjectBufferStream : public ObjectBuffer { void anchor() override; public: - ObjectBufferStream() {} + ObjectBufferStream() : OS(SV) {} virtual ~ObjectBufferStream() {} raw_ostream &getOStream() { return OS; } void flush() { + OS.flush(); + // Make the data accessible via the ObjectBuffer::Buffer - Buffer.reset(MemoryBuffer::getMemBuffer(OS.str(), "", false)); + Buffer.reset(MemoryBuffer::getMemBuffer(StringRef(SV.data(), SV.size()), + "", + false)); } protected: - small_string_ostream<4096> OS; // Working buffer into which we JIT. + SmallVector<char, 4096> SV; // Working buffer into which we JIT. + raw_svector_ostream OS; // streaming wrapper }; } // namespace llvm |