Index: lib/Bitcode/Reader/BitcodeReader.h |
diff --git a/lib/Bitcode/Reader/BitcodeReader.h b/lib/Bitcode/Reader/BitcodeReader.h |
index 6e6118cac0dc5a1a34045a1d3eabcaf62fdb3bed..0e3deec0bb0dbce581fdd13e2881b799cbdeeaca 100644 |
--- a/lib/Bitcode/Reader/BitcodeReader.h |
+++ b/lib/Bitcode/Reader/BitcodeReader.h |
@@ -126,7 +126,7 @@ class BitcodeReader : public GVMaterializer { |
Module *TheModule; |
MemoryBuffer *Buffer; |
bool BufferOwned; |
- BitstreamReader StreamFile; |
+ OwningPtr<BitstreamReader> StreamFile; |
BitstreamCursor Stream; |
const char *ErrorString; |
@@ -174,10 +174,17 @@ class BitcodeReader : public GVMaterializer { |
typedef std::pair<unsigned, GlobalVariable*> BlockAddrRefTy; |
DenseMap<Function*, std::vector<BlockAddrRefTy> > BlockAddrFwdRefs; |
+ StreamChunkCallback StreamCallback; |
+ |
public: |
explicit BitcodeReader(MemoryBuffer *buffer, LLVMContext &C) |
: Context(C), TheModule(0), Buffer(buffer), BufferOwned(false), |
- ErrorString(0), ValueList(C), MDValueList(C) { |
+ ErrorString(0), ValueList(C), MDValueList(C), StreamCallback(0) { |
+ HasReversedFunctionsWithBodies = false; |
+ } |
+ BitcodeReader(StreamChunkCallback cb, LLVMContext &C) |
+ : Context(C), TheModule(0), Buffer(0), BufferOwned(false), |
+ ErrorString(0), ValueList(C), MDValueList(C), StreamCallback(cb) { |
HasReversedFunctionsWithBodies = false; |
} |
~BitcodeReader() { |
@@ -271,6 +278,9 @@ private: |
bool ParseMetadata(); |
bool ParseMetadataAttachment(); |
bool ParseModuleTriple(std::string &Triple); |
+ bool InitStream(); |
+ bool InitStreamFromBuffer(); |
+ bool InitLazyStream(); |
}; |
} // End llvm namespace |