summaryrefslogtreecommitdiff
path: root/include/llvm/ExecutionEngine/ObjectBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/ExecutionEngine/ObjectBuffer.h')
-rw-r--r--include/llvm/ExecutionEngine/ObjectBuffer.h11
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