Bitcode: Decouple block info block state from reader.
As proposed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2016-October/106630.html Move block info block state to a new class, BitstreamBlockInfo. Clients may set the block info for a particular cursor with the BitstreamCursor::setBlockInfo() method. At this point BitstreamReader is not much more than a container for an ArrayRef<uint8_t>, so remove it and replace all uses with direct uses of memory buffers. Differential Revision: https://reviews.llvm.org/D26259 llvm-svn: 286207
This commit is contained in:
@@ -135,15 +135,14 @@ ModuleManager::addModule(StringRef FileName, ModuleKind Type,
|
||||
}
|
||||
|
||||
// Initialize the stream.
|
||||
PCHContainerRdr.ExtractPCH(ModuleEntry->Buffer->getMemBufferRef(),
|
||||
ModuleEntry->StreamFile);
|
||||
ModuleEntry->Data = PCHContainerRdr.ExtractPCH(*ModuleEntry->Buffer);
|
||||
}
|
||||
|
||||
if (ExpectedSignature) {
|
||||
// If we've not read the control block yet, read the signature eagerly now
|
||||
// so that we can check it.
|
||||
if (!ModuleEntry->Signature)
|
||||
ModuleEntry->Signature = ReadSignature(ModuleEntry->StreamFile);
|
||||
ModuleEntry->Signature = ReadSignature(ModuleEntry->Data);
|
||||
|
||||
if (ModuleEntry->Signature != ExpectedSignature) {
|
||||
ErrorStr = ModuleEntry->Signature ? "signature mismatch"
|
||||
|
||||
Reference in New Issue
Block a user