Make a major API change to BitstreamReader: split all the reading

state out of the BitstreamReader class into a BitstreamCursor class.
Doing this allows the client to have multiple cursors into the same
file, each with potentially different live block stacks and
abbreviation records.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70157 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2009-04-26 20:59:02 +00:00
parent 3485d25a0e
commit 962dde3cef
6 changed files with 155 additions and 122 deletions

View File

@ -1346,7 +1346,8 @@ bool BitcodeReader::ParseBitcode() {
if (SkipBitcodeWrapperHeader(BufPtr, BufEnd))
return Error("Invalid bitcode wrapper header");
Stream.init(BufPtr, BufEnd);
StreamFile.init(BufPtr, BufEnd);
Stream.init(StreamFile);
// Sniff for the signature.
if (Stream.Read(8) != 'B' ||