Avoid calling id_sequence_.size() repeatedly
diff --git a/storage/ValueAccessor.hpp b/storage/ValueAccessor.hpp
index e2a898e..f772666 100644
--- a/storage/ValueAccessor.hpp
+++ b/storage/ValueAccessor.hpp
@@ -504,6 +504,7 @@
: accessor_(accessor),
owned_accessor_(take_ownership_of_accessor ? accessor : nullptr),
id_sequence_(id_sequence),
+ id_seqence_size_(id_sequence.size()),
current_position_(std::numeric_limits<OrderedTupleIdSequence::size_type>::max()) {
static_assert(std::numeric_limits<OrderedTupleIdSequence::size_type>::is_modulo,
"size_type does not support modulo overflow.");
@@ -529,12 +530,12 @@
}
inline bool iterationFinished() const {
- return current_position_ + 1 >= id_sequence_.size();
+ return current_position_ + 1 >= id_sequence_size_;
}
inline bool next() {
++current_position_;
- return current_position_ != id_sequence_.size();
+ return current_position_ != id_sequence_size_;
}
inline void previous() {
@@ -551,7 +552,7 @@
}
inline tuple_id getNumTuples() const {
- return id_sequence_.size();
+ return id_sequence_size_;
}
template <bool check_null = true>
@@ -674,6 +675,7 @@
InternalValueAccessorType *accessor_;
std::unique_ptr<InternalValueAccessorType> owned_accessor_;
const OrderedTupleIdSequence &id_sequence_;
+ const std::size_t id_sequence_size_;
OrderedTupleIdSequence::size_type current_position_;
DISALLOW_COPY_AND_ASSIGN(OrderedTupleIdSequenceAdapterValueAccessor);