inline SkArenaAlloc::allocObject()
Call overhead does appear to be showing up on our profiles.
Change-Id: If3875a8972769f45282e0eb1d4aef6324cd56878
Reviewed-on: https://skia-review.googlesource.com/17833
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/src/core/SkArenaAlloc.cpp b/src/core/SkArenaAlloc.cpp
index bfe3ff4..5d02d85 100644
--- a/src/core/SkArenaAlloc.cpp
+++ b/src/core/SkArenaAlloc.cpp
@@ -139,16 +139,6 @@
this->installPtrFooter(NextBlock, previousDtor, 0);
}
-char* SkArenaAlloc::allocObject(uint32_t size, uint32_t alignment) {
- uintptr_t mask = alignment - 1;
- char* objStart = (char*)((uintptr_t)(fCursor + mask) & ~mask);
- if ((ptrdiff_t)size > fEnd - objStart) {
- this->ensureSpace(size, alignment);
- objStart = (char*)((uintptr_t)(fCursor + mask) & ~mask);
- }
- return objStart;
-}
-
char* SkArenaAlloc::allocObjectWithFooter(uint32_t sizeIncludingFooter, uint32_t alignment) {
uintptr_t mask = alignment - 1;
diff --git a/src/core/SkArenaAlloc.h b/src/core/SkArenaAlloc.h
index e838579..c43fcf8a 100644
--- a/src/core/SkArenaAlloc.h
+++ b/src/core/SkArenaAlloc.h
@@ -159,7 +159,15 @@
void ensureSpace(uint32_t size, uint32_t alignment);
- char* allocObject(uint32_t size, uint32_t alignment);
+ char* allocObject(uint32_t size, uint32_t alignment) {
+ uintptr_t mask = alignment - 1;
+ char* objStart = (char*)((uintptr_t)(fCursor + mask) & ~mask);
+ if ((ptrdiff_t)size > fEnd - objStart) {
+ this->ensureSpace(size, alignment);
+ objStart = (char*)((uintptr_t)(fCursor + mask) & ~mask);
+ }
+ return objStart;
+ }
char* allocObjectWithFooter(uint32_t sizeIncludingFooter, uint32_t alignment);