diff options
author | bsalomon <bsalomon@google.com> | 2014-11-14 12:10:14 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-14 12:10:15 -0800 |
commit | 71cb0c241e439b6ed746b90294d0b6916644a644 (patch) | |
tree | ef62e86321ed64c6976ead548e9208393c3bce86 /src/gpu/GrBufferAllocPool.cpp | |
parent | ae760d579c6ad74989a998d30bb20a55d81e634e (diff) |
Replace GrResourceCache with GrResourceCache2.
BUG=skia:2889
Committed: https://skia.googlesource.com/skia/+/66a450f21a3da174b7eed89a1d5fc8591e8b6ee6
Committed: https://skia.googlesource.com/skia/+/407aa584d183c1bf314f5defd1cf0202e8a96c89
Review URL: https://codereview.chromium.org/716143004
Diffstat (limited to 'src/gpu/GrBufferAllocPool.cpp')
-rw-r--r-- | src/gpu/GrBufferAllocPool.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/gpu/GrBufferAllocPool.cpp b/src/gpu/GrBufferAllocPool.cpp index 9fafcb35ac..26a1d15837 100644 --- a/src/gpu/GrBufferAllocPool.cpp +++ b/src/gpu/GrBufferAllocPool.cpp @@ -131,6 +131,7 @@ void GrBufferAllocPool::unmap() { #ifdef SK_DEBUG void GrBufferAllocPool::validate(bool unusedBlockAllowed) const { + bool wasDestroyed = false; if (fBufferPtr) { SkASSERT(!fBlocks.empty()); if (fBlocks.back().fBuffer->isMapped()) { @@ -146,18 +147,24 @@ void GrBufferAllocPool::validate(bool unusedBlockAllowed) const { for (int i = 0; i < fBlocks.count() - 1; ++i) { SkASSERT(!fBlocks[i].fBuffer->isMapped()); } - for (int i = 0; i < fBlocks.count(); ++i) { - size_t bytes = fBlocks[i].fBuffer->gpuMemorySize() - fBlocks[i].fBytesFree; - bytesInUse += bytes; - SkASSERT(bytes || unusedBlockAllowed); + for (int i = 0; !wasDestroyed && i < fBlocks.count(); ++i) { + if (fBlocks[i].fBuffer->wasDestroyed()) { + wasDestroyed = true; + } else { + size_t bytes = fBlocks[i].fBuffer->gpuMemorySize() - fBlocks[i].fBytesFree; + bytesInUse += bytes; + SkASSERT(bytes || unusedBlockAllowed); + } } - SkASSERT(bytesInUse == fBytesInUse); - if (unusedBlockAllowed) { - SkASSERT((fBytesInUse && !fBlocks.empty()) || - (!fBytesInUse && (fBlocks.count() < 2))); - } else { - SkASSERT((0 == fBytesInUse) == fBlocks.empty()); + if (!wasDestroyed) { + SkASSERT(bytesInUse == fBytesInUse); + if (unusedBlockAllowed) { + SkASSERT((fBytesInUse && !fBlocks.empty()) || + (!fBytesInUse && (fBlocks.count() < 2))); + } else { + SkASSERT((0 == fBytesInUse) == fBlocks.empty()); + } } } #endif |