QuadTree: don't leak deferred inserts past clear()

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/277713003

git-svn-id: http://skia.googlecode.com/svn/trunk@14670 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
commit-bot@chromium.org 2014-05-09 14:33:55 +00:00
parent 95c2003740
commit 4175388afa

View File

@ -46,8 +46,7 @@ static U8CPU child_intersect(const SkIRect& query, const SkIPoint& split) {
return intersect;
}
SkQuadTree::SkQuadTree(const SkIRect& bounds)
: fRoot(NULL) {
SkQuadTree::SkQuadTree(const SkIRect& bounds) : fRoot(NULL) {
SkASSERT((bounds.width() * bounds.height()) > 0);
fRootBounds = bounds;
}
@ -178,11 +177,14 @@ void SkQuadTree::search(const SkIRect& query, SkTDArray<void*>* results) {
}
void SkQuadTree::clear() {
this->flushDeferredInserts();
if (NULL != fRoot) {
this->clear(fRoot);
fNodePool.release(fRoot);
fRoot = NULL;
}
SkASSERT(fEntryPool.allocated() == fEntryPool.available());
SkASSERT(fNodePool.allocated() == fNodePool.available());
}
int SkQuadTree::getDepth() const {