Index: third_party/libwebp/utils/color_cache.h |
diff --git a/third_party/libwebp/utils/color_cache.h b/third_party/libwebp/utils/color_cache.h |
index 0f824ed457e6fad49579fc7d2ef76f09a787ebac..a9a9f64270fe18f630ecdd36073d8f3e85d1db59 100644 |
--- a/third_party/libwebp/utils/color_cache.h |
+++ b/third_party/libwebp/utils/color_cache.h |
@@ -24,17 +24,24 @@ extern "C" { |
// Main color cache struct. |
typedef struct { |
uint32_t *colors_; // color entries |
- int hash_shift_; // Hash shift: 32 - hash_bits. |
+ int hash_shift_; // Hash shift: 32 - hash_bits_. |
+ int hash_bits_; |
} VP8LColorCache; |
static const uint32_t kHashMul = 0x1e35a7bd; |
static WEBP_INLINE uint32_t VP8LColorCacheLookup( |
const VP8LColorCache* const cc, uint32_t key) { |
- assert(key <= (~0U >> cc->hash_shift_)); |
+ assert((key >> cc->hash_bits_) == 0u); |
return cc->colors_[key]; |
} |
+static WEBP_INLINE void VP8LColorCacheSet(const VP8LColorCache* const cc, |
+ uint32_t key, uint32_t argb) { |
+ assert((key >> cc->hash_bits_) == 0u); |
+ cc->colors_[key] = argb; |
+} |
+ |
static WEBP_INLINE void VP8LColorCacheInsert(const VP8LColorCache* const cc, |
uint32_t argb) { |
const uint32_t key = (kHashMul * argb) >> cc->hash_shift_; |
@@ -49,7 +56,7 @@ static WEBP_INLINE int VP8LColorCacheGetIndex(const VP8LColorCache* const cc, |
static WEBP_INLINE int VP8LColorCacheContains(const VP8LColorCache* const cc, |
uint32_t argb) { |
const uint32_t key = (kHashMul * argb) >> cc->hash_shift_; |
- return cc->colors_[key] == argb; |
+ return (cc->colors_[key] == argb); |
} |
//------------------------------------------------------------------------------ |
@@ -58,6 +65,9 @@ static WEBP_INLINE int VP8LColorCacheContains(const VP8LColorCache* const cc, |
// Returns false in case of memory error. |
int VP8LColorCacheInit(VP8LColorCache* const color_cache, int hash_bits); |
+void VP8LColorCacheCopy(const VP8LColorCache* const src, |
+ VP8LColorCache* const dst); |
+ |
// Delete the memory associated to color cache. |
void VP8LColorCacheClear(VP8LColorCache* const color_cache); |