Index: src/core/SkSmallAllocator.h |
diff --git a/src/core/SkSmallAllocator.h b/src/core/SkSmallAllocator.h |
index 67afe756912bdd014945f0ba235dc9797cdc3aa7..5cae28519793c0c9cb21e20418e8c352f01b72a9 100644 |
--- a/src/core/SkSmallAllocator.h |
+++ b/src/core/SkSmallAllocator.h |
@@ -33,8 +33,7 @@ class SkSmallAllocator : SkNoncopyable { |
public: |
SkSmallAllocator() |
: fStorageUsed(0) |
- , fNumObjects(0) |
- {} |
mtklein_C
2016/11/06 13:25:16
Seems unnecessary?
herb_g
2016/11/07 04:44:40
Done.
|
+ , fNumObjects(0) { } |
~SkSmallAllocator() { |
// Destruct in reverse order, in case an earlier object points to a |
@@ -56,12 +55,12 @@ public: |
* will be returned. |
*/ |
template<typename T, typename... Args> |
- T* createT(const Args&... args) { |
+ T* createT(Args&&... args) { |
void* buf = this->reserveT<T>(); |
if (nullptr == buf) { |
return nullptr; |
} |
- return new (buf) T(args...); |
+ return new (buf) T(std::forward<Args>(args)...); |
} |
/* |
@@ -116,6 +115,7 @@ public: |
} |
private: |
+ static constexpr size_t kAlignment = 16UL; |
mtklein_C
2016/11/06 13:25:16
Unused?
herb_g
2016/11/07 04:44:40
Done.
|
struct Rec { |
size_t fStorageSize; // 0 if allocated on heap |
void* fObj; |
@@ -130,10 +130,9 @@ private: |
} |
alignas(16) char fStorage[kTotalBytes]; |
- // Number of bytes used so far. |
- size_t fStorageUsed; |
- uint32_t fNumObjects; |
- Rec fRecs[kMaxObjects]; |
+ size_t fStorageUsed; // Number of bytes used so far. |
+ uint32_t fNumObjects; |
+ Rec fRecs[kMaxObjects]; |
}; |
#endif // SkSmallAllocator_DEFINED |