diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-06 22:43:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-06 22:43:46 +0000 |
commit | 123f3848794b333063b478d38ff12e1bd3969125 (patch) | |
tree | 46107e172157ba100bd17383708c5b8a0ae830c8 /include/llvm/Bitcode/BitstreamReader.h | |
parent | 298a82dd0d042479e419c4fa2219c1a08c1becc4 (diff) |
allow clients to look up abbrev id's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68471 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode/BitstreamReader.h')
-rw-r--r-- | include/llvm/Bitcode/BitstreamReader.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h index 281f8a412b..fe51ade4cb 100644 --- a/include/llvm/Bitcode/BitstreamReader.h +++ b/include/llvm/Bitcode/BitstreamReader.h @@ -363,6 +363,14 @@ private: } } public: + + /// getAbbrev - Return the abbreviation for the specified AbbrevId. + const BitCodeAbbrev *getAbbrev(unsigned AbbrevID) { + unsigned AbbrevNo = AbbrevID-bitc::FIRST_APPLICATION_ABBREV; + assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!"); + return CurAbbrevs[AbbrevNo]; + } + unsigned ReadRecord(unsigned AbbrevID, SmallVectorImpl<uint64_t> &Vals) { if (AbbrevID == bitc::UNABBREV_RECORD) { unsigned Code = ReadVBR(6); @@ -372,9 +380,7 @@ public: return Code; } - unsigned AbbrevNo = AbbrevID-bitc::FIRST_APPLICATION_ABBREV; - assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!"); - BitCodeAbbrev *Abbv = CurAbbrevs[AbbrevNo]; + const BitCodeAbbrev *Abbv = getAbbrev(AbbrevID); for (unsigned i = 0, e = Abbv->getNumOperandInfos(); i != e; ++i) { const BitCodeAbbrevOp &Op = Abbv->getOperandInfo(i); |