[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