diff options
author | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-07-16 21:20:03 +0000 |
---|---|---|
committer | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-07-16 21:20:03 +0000 |
commit | c029062a0312fb747fb6c2677983aba51795c580 (patch) | |
tree | f778f31a70ac586a8901d088cc894fa8f345615c /src/pdf | |
parent | 21e3ed2e9af0e4b5ae813334e631714d198f9d94 (diff) |
Fixed two sub-optimal iterator uses
http://codereview.appspot.com/6409048/
git-svn-id: http://skia.googlecode.com/svn/trunk@4633 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/pdf')
-rw-r--r-- | src/pdf/SkPDFDevice.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp index bba703c23c..691ee26f24 100644 --- a/src/pdf/SkPDFDevice.cpp +++ b/src/pdf/SkPDFDevice.cpp @@ -222,16 +222,15 @@ void GraphicStackState::pop() { // and asserts that "prefix" will be a prefix to "stack." static void skip_clip_stack_prefix(const SkClipStack& prefix, const SkClipStack& stack, - SkClipStack::B2FIter* iter) { + SkClipStack::Iter* iter) { SkClipStack::B2FIter prefixIter(prefix); - iter->reset(stack); + iter->reset(stack, SkClipStack::Iter::kFront_IterStart); const SkClipStack::B2FIter::Clip* prefixEntry; const SkClipStack::B2FIter::Clip* iterEntry; - int count = 0; for (prefixEntry = prefixIter.next(); prefixEntry; - prefixEntry = prefixIter.next(), count++) { + prefixEntry = prefixIter.next()) { iterEntry = iter->next(); SkASSERT(iterEntry); // Because of SkClipStack does internal intersection, the last clip @@ -243,12 +242,8 @@ static void skip_clip_stack_prefix(const SkClipStack& prefix, (prefixEntry->fRect == NULL)); SkASSERT((iterEntry->fPath == NULL) == (prefixEntry->fPath == NULL)); - // We need to back up the iterator by one but don't have that - // function, so reset and go forward by one less. - iter->reset(stack); - for (int i = 0; i < count; i++) { - iter->next(); - } + // back up the iterator by one + iter->prev(); prefixEntry = prefixIter.next(); break; } @@ -305,7 +300,7 @@ void GraphicStackState::updateClip(const SkClipStack& clipStack, // initial clip on the parent layer. (This means there's a bug if the user // expands the clip and then uses any xfer mode that uses dst: // http://code.google.com/p/skia/issues/detail?id=228 ) - SkClipStack::B2FIter iter; + SkClipStack::Iter iter; skip_clip_stack_prefix(fEntries[0].fClipStack, clipStack, &iter); // If the clip stack does anything other than intersect or if it uses |