aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkArenaAlloc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkArenaAlloc.cpp')
-rw-r--r--src/core/SkArenaAlloc.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/SkArenaAlloc.cpp b/src/core/SkArenaAlloc.cpp
index 5ac08dcdc3..39d1ed5fc8 100644
--- a/src/core/SkArenaAlloc.cpp
+++ b/src/core/SkArenaAlloc.cpp
@@ -123,7 +123,7 @@ void SkArenaAlloc::ensureSpace(size_t size, size_t alignment) {
char* SkArenaAlloc::allocObject(size_t size, size_t alignment) {
size_t mask = alignment - 1;
char* objStart = (char*)((uintptr_t)(fCursor + mask) & ~mask);
- if (objStart + size > fEnd) {
+ if (size > (size_t)(fEnd - objStart)) {
this->ensureSpace(size, alignment);
objStart = (char*)((uintptr_t)(fCursor + mask) & ~mask);
}
@@ -142,7 +142,7 @@ restart:
char* objStart = (char*)((uintptr_t)(fCursor + skipOverhead + mask) & ~mask);
size_t totalSize = sizeIncludingFooter + skipOverhead;
- if (objStart + totalSize > fEnd) {
+ if (totalSize > (size_t)(fEnd - objStart)) {
this->ensureSpace(totalSize, alignment);
goto restart;
}