| Index: src/core/SkSmallAllocator.h
|
| diff --git a/src/core/SkSmallAllocator.h b/src/core/SkSmallAllocator.h
|
| index 9095fa57fc11fde0022c023f5e8341d7dae819dd..67afe756912bdd014945f0ba235dc9797cdc3aa7 100644
|
| --- a/src/core/SkSmallAllocator.h
|
| +++ b/src/core/SkSmallAllocator.h
|
| @@ -93,7 +93,7 @@ public:
|
| // There is space in fStorage.
|
| rec->fStorageSize = storageRequired;
|
| rec->fHeapStorage = nullptr;
|
| - rec->fObj = static_cast<void*>(fStorage.fBytes + fStorageUsed);
|
| + rec->fObj = static_cast<void*>(fStorage + fStorageUsed);
|
| fStorageUsed += storageRequired;
|
| }
|
| rec->fKillProc = DestroyT<T>;
|
| @@ -129,17 +129,11 @@ private:
|
| static_cast<T*>(ptr)->~T();
|
| }
|
|
|
| - struct SK_STRUCT_ALIGN(16) Storage {
|
| - // we add kMaxObjects * 15 to account for the worst-case slop, where each allocation wasted
|
| - // 15 bytes (due to forcing each to be 16-byte aligned)
|
| - char fBytes[kTotalBytes + kMaxObjects * 15];
|
| - };
|
| -
|
| - Storage fStorage;
|
| + alignas(16) char fStorage[kTotalBytes];
|
| // Number of bytes used so far.
|
| - size_t fStorageUsed;
|
| - uint32_t fNumObjects;
|
| - Rec fRecs[kMaxObjects];
|
| + size_t fStorageUsed;
|
| + uint32_t fNumObjects;
|
| + Rec fRecs[kMaxObjects];
|
| };
|
|
|
| #endif // SkSmallAllocator_DEFINED
|
|
|