| Index: third_party/libwebp/utils/utils.h
|
| diff --git a/third_party/libwebp/utils/utils.h b/third_party/libwebp/utils/utils.h
|
| index a034762556f17189f0764ab6cb7541a99196812a..e5d6d6309533ef393b522730b31fc2f056a36316 100644
|
| --- a/third_party/libwebp/utils/utils.h
|
| +++ b/third_party/libwebp/utils/utils.h
|
| @@ -7,11 +7,14 @@
|
| //
|
| // Misc. common utility functions
|
| //
|
| -// Author: Skal (pascal.massimino@gmail.com)
|
| +// Authors: Skal (pascal.massimino@gmail.com)
|
| +// Urvang (urvang@google.com)
|
|
|
| #ifndef WEBP_UTILS_UTILS_H_
|
| #define WEBP_UTILS_UTILS_H_
|
|
|
| +#include <assert.h>
|
| +
|
| #include "../webp/types.h"
|
|
|
| #if defined(__cplusplus) || defined(c_plusplus)
|
| @@ -36,6 +39,40 @@ void* WebPSafeMalloc(uint64_t nmemb, size_t size);
|
| void* WebPSafeCalloc(uint64_t nmemb, size_t size);
|
|
|
| //------------------------------------------------------------------------------
|
| +// Reading/writing data.
|
| +
|
| +// Read 16, 24 or 32 bits stored in little-endian order.
|
| +static WEBP_INLINE int GetLE16(const uint8_t* const data) {
|
| + return (int)(data[0] << 0) | (data[1] << 8);
|
| +}
|
| +
|
| +static WEBP_INLINE int GetLE24(const uint8_t* const data) {
|
| + return GetLE16(data) | (data[2] << 16);
|
| +}
|
| +
|
| +static WEBP_INLINE uint32_t GetLE32(const uint8_t* const data) {
|
| + return (uint32_t)GetLE16(data) | (GetLE16(data + 2) << 16);
|
| +}
|
| +
|
| +// Store 16, 24 or 32 bits in little-endian order.
|
| +static WEBP_INLINE void PutLE16(uint8_t* const data, int val) {
|
| + assert(val < (1 << 16));
|
| + data[0] = (val >> 0);
|
| + data[1] = (val >> 8);
|
| +}
|
| +
|
| +static WEBP_INLINE void PutLE24(uint8_t* const data, int val) {
|
| + assert(val < (1 << 24));
|
| + PutLE16(data, val & 0xffff);
|
| + data[2] = (val >> 16);
|
| +}
|
| +
|
| +static WEBP_INLINE void PutLE32(uint8_t* const data, uint32_t val) {
|
| + PutLE16(data, (int)(val & 0xffff));
|
| + PutLE16(data + 2, (int)(val >> 16));
|
| +}
|
| +
|
| +//------------------------------------------------------------------------------
|
|
|
| #if defined(__cplusplus) || defined(c_plusplus)
|
| } // extern "C"
|
|
|