OLD | NEW |
1 | 1 |
2 #include "SkBitmap.h" | 2 #include "SkBitmap.h" |
3 #include "SkTableColorFilter.h" | 3 #include "SkTableColorFilter.h" |
4 #include "SkColorPriv.h" | 4 #include "SkColorPriv.h" |
5 #include "SkFlattenableBuffers.h" | 5 #include "SkFlattenableBuffers.h" |
6 #include "SkUnPreMultiply.h" | 6 #include "SkUnPreMultiply.h" |
7 #include "SkString.h" | 7 #include "SkString.h" |
8 | 8 |
9 class SkTable_ColorFilter : public SkColorFilter { | 9 class SkTable_ColorFilter : public SkColorFilter { |
10 public: | 10 public: |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 | 182 |
183 SkTable_ColorFilter::SkTable_ColorFilter(SkFlattenableReadBuffer& buffer) : INHE
RITED(buffer) { | 183 SkTable_ColorFilter::SkTable_ColorFilter(SkFlattenableReadBuffer& buffer) : INHE
RITED(buffer) { |
184 fBitmap = NULL; | 184 fBitmap = NULL; |
185 | 185 |
186 uint8_t storage[5*256]; | 186 uint8_t storage[5*256]; |
187 | 187 |
188 fFlags = buffer.readInt(); | 188 fFlags = buffer.readInt(); |
189 | 189 |
190 size_t size = buffer.getArrayCount(); | 190 size_t size = buffer.getArrayCount(); |
191 SkASSERT(size <= sizeof(storage)); | 191 SkASSERT(size <= sizeof(storage)); |
| 192 buffer.validate(size <= sizeof(storage)); |
192 buffer.readByteArray(storage, size); | 193 buffer.readByteArray(storage, size); |
193 | 194 |
194 SkDEBUGCODE(size_t raw = ) SkPackBits::Unpack8(storage, size, fStorage); | 195 SkDEBUGCODE(size_t raw = ) SkPackBits::Unpack8(storage, size, fStorage); |
195 | 196 |
196 SkASSERT(raw <= sizeof(fStorage)); | 197 SkASSERT(raw <= sizeof(fStorage)); |
197 SkDEBUGCODE(size_t count = gCountNibBits[fFlags & 0xF]); | 198 SkDEBUGCODE(size_t count = gCountNibBits[fFlags & 0xF]); |
198 SkASSERT(raw == count * 256); | 199 SkASSERT(raw == count * 256); |
199 } | 200 } |
200 | 201 |
201 bool SkTable_ColorFilter::asComponentTable(SkBitmap* table) const { | 202 bool SkTable_ColorFilter::asComponentTable(SkBitmap* table) const { |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], | 425 SkColorFilter* SkTableColorFilter::CreateARGB(const uint8_t tableA[256], |
425 const uint8_t tableR[256], | 426 const uint8_t tableR[256], |
426 const uint8_t tableG[256], | 427 const uint8_t tableG[256], |
427 const uint8_t tableB[256]) { | 428 const uint8_t tableB[256]) { |
428 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB)); | 429 return SkNEW_ARGS(SkTable_ColorFilter, (tableA, tableR, tableG, tableB)); |
429 } | 430 } |
430 | 431 |
431 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) | 432 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkTableColorFilter) |
432 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter) | 433 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTable_ColorFilter) |
433 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 434 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
OLD | NEW |