diff options
author | herb <herb@google.com> | 2017-01-25 20:37:09 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-26 02:07:06 +0000 |
commit | 98829b979119297bd9dbbe9313ba98ea0b3289af (patch) | |
tree | 318bb05ef616956afcf41885730b3eeb5ddfb0a9 | |
parent | 65a17539d2ab1866b2c8252155b0a7fbe127d861 (diff) |
Check that the upper bits are correct in the SkArenaAlloc footer.
TBR=mtklein@google.com
Change-Id: I8dc21778d1b8b24dd9d7b6919bb7e2bcfe090e82
Reviewed-on: https://skia-review.googlesource.com/7588
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
-rw-r--r-- | src/core/SkArenaAlloc.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/SkArenaAlloc.cpp b/src/core/SkArenaAlloc.cpp index 90b703721e..95f07da9eb 100644 --- a/src/core/SkArenaAlloc.cpp +++ b/src/core/SkArenaAlloc.cpp @@ -68,6 +68,9 @@ void SkArenaAlloc::reset() { void SkArenaAlloc::installFooter(FooterAction* action, uint32_t padding) { SkASSERT(padding < 64); int64_t actionInt = (int64_t)(intptr_t)action; + + // The top 14 bits should be either all 0s or all 1s. Check this. + SkASSERT((actionInt << 6) >> 6 == actionInt); Footer encodedFooter = (actionInt << 6) | padding; memmove(fCursor, &encodedFooter, sizeof(Footer)); fCursor += sizeof(Footer); |