| Index: src/core/SkColorTable.cpp
|
| diff --git a/src/core/SkColorTable.cpp b/src/core/SkColorTable.cpp
|
| index f52ac909eb0d626fea2323000a6a561bcadb581f..ca9a8657c4132cc565e998522978128d89ce6f7c 100644
|
| --- a/src/core/SkColorTable.cpp
|
| +++ b/src/core/SkColorTable.cpp
|
| @@ -47,14 +47,26 @@
|
|
|
| #include "SkColorPriv.h"
|
|
|
| -const uint16_t* SkColorTable::read16BitCache() const {
|
| - return f16BitCache.get([&]{
|
| +namespace {
|
| +struct Build16BitCache {
|
| + const SkPMColor* fColors;
|
| + int fCount;
|
| +
|
| + uint16_t* operator()() const {
|
| uint16_t* cache = (uint16_t*)sk_malloc_throw(fCount * sizeof(uint16_t));
|
| for (int i = 0; i < fCount; i++) {
|
| cache[i] = SkPixel32ToPixel16_ToU16(fColors[i]);
|
| }
|
| return cache;
|
| - });
|
| + }
|
| +};
|
| +}//namespace
|
| +
|
| +void SkColorTable::Free16BitCache(uint16_t* cache) { sk_free(cache); }
|
| +
|
| +const uint16_t* SkColorTable::read16BitCache() const {
|
| + const Build16BitCache create = { fColors, fCount };
|
| + return f16BitCache.get(create);
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|