aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2018-05-09 13:10:44 -0600
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-09 19:54:11 +0000
commitf112ea2cb2dd7e6a45d0c35c7f514879eb92deb8 (patch)
tree1d0548cf3fbecafa8b2319c541ad88a535ff293e /src/core
parente0dc9432d8836ec34a3ef90eabc39eadc3d1db90 (diff)
Support C++11 range-for loops in SkTInternalLList
Bug: skia: Change-Id: Iad5e06fac95c5b805f3735c106103e5a07975b5d Reviewed-on: https://skia-review.googlesource.com/127106 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkTInternalLList.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/SkTInternalLList.h b/src/core/SkTInternalLList.h
index df06d8a255..2f43f1c1eb 100644
--- a/src/core/SkTInternalLList.h
+++ b/src/core/SkTInternalLList.h
@@ -250,10 +250,25 @@ public:
return fCurr;
}
+ /**
+ * C++11 range-for interface.
+ */
+ bool operator!=(const Iter& that) { return fCurr != that.fCurr; }
+ T* operator*() { return this->get(); }
+ void operator++() { this->next(); }
+
private:
T* fCurr;
};
+ Iter begin() const {
+ Iter iter;
+ iter.init(*this, Iter::kHead_IterStart);
+ return iter;
+ }
+
+ Iter end() const { return Iter(); }
+
#ifdef SK_DEBUG
void validate() const {
SkASSERT(!fHead == !fTail);