From 791625596d2ca4e073c80e4da7f6eafc3a91b450 Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Wed, 24 May 2017 12:19:02 -0400 Subject: [PATCH] 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 Commit-Queue: Mike Klein --- src/core/SkArenaAlloc.cpp | 10 ---------- src/core/SkArenaAlloc.h | 10 +++++++++- 2 files changed, 9 insertions(+), 11 deletions(-) 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 @@ void SkArenaAlloc::ensureSpace(uint32_t size, uint32_t alignment) { 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 @@ private: 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); -- 2.7.4