| 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
|
|
|