[llvm] r302292 - [StreamArray] Pipe the Offset through the constructor.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Fri May 5 14:15:31 PDT 2017


Author: zturner
Date: Fri May  5 16:15:31 2017
New Revision: 302292

URL: http://llvm.org/viewvc/llvm-project?rev=302292&view=rev
Log:
[StreamArray] Pipe the Offset through the constructor.

When randomly accessing an element by offset, we weren't passing
the offset through so if you called .offset() it would return a
value of 0.

Modified:
    llvm/trunk/include/llvm/Support/BinaryStreamArray.h

Modified: llvm/trunk/include/llvm/Support/BinaryStreamArray.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/BinaryStreamArray.h?rev=302292&r1=302291&r2=302292&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/BinaryStreamArray.h (original)
+++ llvm/trunk/include/llvm/Support/BinaryStreamArray.h Fri May  5 16:15:31 2017
@@ -64,8 +64,8 @@ class VarStreamArrayIterator
 public:
   VarStreamArrayIterator() = default;
   VarStreamArrayIterator(const ArrayType &Array, const WrappedCtx &Ctx,
-                         BinaryStreamRef Stream, bool *HadError = nullptr)
-      : IterRef(Stream), Ctx(&Ctx), Array(&Array), HadError(HadError) {
+                         BinaryStreamRef Stream, bool *HadError = nullptr, uint32_t Offset = 0)
+      : IterRef(Stream), Ctx(&Ctx), Array(&Array), HadError(HadError), AbsOffset(Offset) {
     if (IterRef.getLength() == 0)
       moveToEnd();
     else {
@@ -238,7 +238,7 @@ public:
   /// since the behavior is undefined if \p Offset does not refer to the
   /// beginning of a valid record.
   Iterator at(uint32_t Offset) const {
-    return Iterator(*this, Ctx, Stream.drop_front(Offset), nullptr);
+    return Iterator(*this, Ctx, Stream.drop_front(Offset), nullptr, Offset);
   }
 
   BinaryStreamRef getUnderlyingStream() const { return Stream; }




More information about the llvm-commits mailing list