Index: include/core/SkTArray.h |
diff --git a/include/core/SkTArray.h b/include/core/SkTArray.h |
index dea0e38fecae7e2ac10e0f0b7b517c2847e06364..e11698a44a2944f6fbf211eea272981bf2e0f8e9 100644 |
--- a/include/core/SkTArray.h |
+++ b/include/core/SkTArray.h |
@@ -364,6 +364,30 @@ public: |
return !(*this == right); |
} |
+ int find(const T& elem) const { |
+ const T* iter = fItemArray; |
+ const T* stop = fItemArray + fCount; |
+ |
+ for (; iter < stop; iter++) { |
+ if (*iter == elem) { |
+ return SkToInt(iter - fItemArray); |
+ } |
+ } |
+ return -1; |
+ } |
+ |
+ int rfind(const T& elem) const { |
+ const T* iter = fItemArray + fCount; |
+ const T* stop = fItemArray; |
+ |
+ while (iter > stop) { |
+ if (*--iter == elem) { |
+ return SkToInt(iter - stop); |
+ } |
+ } |
+ return -1; |
+ } |
+ |
protected: |
/** |
* Creates an empty array that will use the passed storage block until it |