[llvm-commits] [llvm] r172940 - in /llvm/trunk: include/llvm/Bitcode/BitstreamReader.h lib/Bitcode/Reader/BitstreamReader.cpp

Chris Lattner sabre at nondot.org
Sat Jan 19 17:06:48 PST 2013


Author: lattner
Date: Sat Jan 19 19:06:48 2013
New Revision: 172940

URL: http://llvm.org/viewvc/llvm-project?rev=172940&view=rev
Log:
stringref'ize readRecord and properly capitalize it.  Add a compatibility method to easy 
the transition.

Modified:
    llvm/trunk/include/llvm/Bitcode/BitstreamReader.h
    llvm/trunk/lib/Bitcode/Reader/BitstreamReader.cpp

Modified: llvm/trunk/include/llvm/Bitcode/BitstreamReader.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/BitstreamReader.h?rev=172940&r1=172939&r2=172940&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Bitcode/BitstreamReader.h (original)
+++ llvm/trunk/include/llvm/Bitcode/BitstreamReader.h Sat Jan 19 19:06:48 2013
@@ -506,9 +506,20 @@
   /// skipRecord - Read the current record and discard it.
   void skipRecord(unsigned AbbrevID);
   
+  unsigned readRecord(unsigned AbbrevID, SmallVectorImpl<uint64_t> &Vals,
+                      StringRef *Blob = 0);
+
   unsigned ReadRecord(unsigned AbbrevID, SmallVectorImpl<uint64_t> &Vals,
-                      const char **BlobStart = 0, unsigned *BlobLen = 0);
-  
+                      const char **BlobStart = 0, unsigned *BlobLen = 0) {
+    if (!BlobStart)
+      return readRecord(AbbrevID, Vals);
+    StringRef S;
+    unsigned X = readRecord(AbbrevID, Vals, &S);
+    *BlobStart = S.data();
+    *BlobLen = S.size();
+    return X;
+  }
+
   unsigned ReadRecord(unsigned AbbrevID, SmallVectorImpl<uint64_t> &Vals,
                       const char *&BlobStart, unsigned &BlobLen) {
     return ReadRecord(AbbrevID, Vals, &BlobStart, &BlobLen);

Modified: llvm/trunk/lib/Bitcode/Reader/BitstreamReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitstreamReader.cpp?rev=172940&r1=172939&r2=172940&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitstreamReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitstreamReader.cpp Sat Jan 19 19:06:48 2013
@@ -198,9 +198,9 @@
   }
 }
 
-unsigned BitstreamCursor::ReadRecord(unsigned AbbrevID,
+unsigned BitstreamCursor::readRecord(unsigned AbbrevID,
                                      SmallVectorImpl<uint64_t> &Vals,
-                                     const char **BlobStart, unsigned *BlobLen){
+                                     StringRef *Blob) {
   if (AbbrevID == bitc::UNABBREV_RECORD) {
     unsigned Code = ReadVBR(6);
     unsigned NumElts = ReadVBR(6);
@@ -256,10 +256,11 @@
     
     // Otherwise, read the number of bytes.  If we can return a reference to
     // the data, do so to avoid copying it.
-    if (BlobStart) {
-      *BlobStart = (const char*)BitStream->getBitcodeBytes().getPointer(
-                                                            NextChar, NumElts);
-      *BlobLen = NumElts;
+    if (Blob) {
+      *Blob =
+        StringRef((const char*)BitStream->getBitcodeBytes().getPointer(
+                                                            NextChar, NumElts),
+                NumElts);
     } else {
       for (; NumElts; ++NextChar, --NumElts)
         Vals.push_back(getByte(NextChar));





More information about the llvm-commits mailing list