/src/libwebp/src/utils/utils.h
Line  | Count  | Source (jump to first uncovered line)  | 
1  |  | // Copyright 2012 Google Inc. All Rights Reserved.  | 
2  |  | //  | 
3  |  | // Use of this source code is governed by a BSD-style license  | 
4  |  | // that can be found in the COPYING file in the root of the source  | 
5  |  | // tree. An additional intellectual property rights grant can be found  | 
6  |  | // in the file PATENTS. All contributing project authors may  | 
7  |  | // be found in the AUTHORS file in the root of the source tree.  | 
8  |  | // -----------------------------------------------------------------------------  | 
9  |  | //  | 
10  |  | // Misc. common utility functions  | 
11  |  | //  | 
12  |  | // Authors: Skal (pascal.massimino@gmail.com)  | 
13  |  | //          Urvang (urvang@google.com)  | 
14  |  |  | 
15  |  | #ifndef WEBP_UTILS_UTILS_H_  | 
16  |  | #define WEBP_UTILS_UTILS_H_  | 
17  |  |  | 
18  |  | #ifdef HAVE_CONFIG_H  | 
19  |  | #include "src/webp/config.h"  | 
20  |  | #endif  | 
21  |  |  | 
22  |  | #include <assert.h>  | 
23  |  |  | 
24  |  | #include "src/webp/types.h"  | 
25  |  |  | 
26  |  | #ifdef __cplusplus  | 
27  |  | extern "C" { | 
28  |  | #endif  | 
29  |  |  | 
30  |  | //------------------------------------------------------------------------------  | 
31  |  | // Memory allocation  | 
32  |  |  | 
33  |  | // This is the maximum memory amount that libwebp will ever try to allocate.  | 
34  |  | #ifndef WEBP_MAX_ALLOCABLE_MEMORY  | 
35  |  | #if SIZE_MAX > (1ULL << 34)  | 
36  | 0  | #define WEBP_MAX_ALLOCABLE_MEMORY (1ULL << 34)  | 
37  |  | #else  | 
38  |  | // For 32-bit targets keep this below INT_MAX to avoid valgrind warnings.  | 
39  |  | #define WEBP_MAX_ALLOCABLE_MEMORY ((1ULL << 31) - (1 << 16))  | 
40  |  | #endif  | 
41  |  | #endif  // WEBP_MAX_ALLOCABLE_MEMORY  | 
42  |  |  | 
43  | 0  | static WEBP_INLINE int CheckSizeOverflow(uint64_t size) { | 
44  | 0  |   return size == (size_t)size;  | 
45  | 0  | } Unexecuted instantiation: webp_dec.c:CheckSizeOverflow Unexecuted instantiation: picture_enc.c:CheckSizeOverflow Unexecuted instantiation: webp_enc.c:CheckSizeOverflow Unexecuted instantiation: rescaler_utils.c:CheckSizeOverflow Unexecuted instantiation: utils.c:CheckSizeOverflow Unexecuted instantiation: buffer_dec.c:CheckSizeOverflow Unexecuted instantiation: frame_dec.c:CheckSizeOverflow Unexecuted instantiation: io_dec.c:CheckSizeOverflow Unexecuted instantiation: vp8_dec.c:CheckSizeOverflow Unexecuted instantiation: vp8l_dec.c:CheckSizeOverflow Unexecuted instantiation: cost.c:CheckSizeOverflow Unexecuted instantiation: dec.c:CheckSizeOverflow Unexecuted instantiation: enc.c:CheckSizeOverflow Unexecuted instantiation: lossless.c:CheckSizeOverflow Unexecuted instantiation: cost_sse2.c:CheckSizeOverflow Unexecuted instantiation: enc_sse2.c:CheckSizeOverflow Unexecuted instantiation: enc_sse41.c:CheckSizeOverflow Unexecuted instantiation: dec_sse2.c:CheckSizeOverflow Unexecuted instantiation: lossless_sse2.c:CheckSizeOverflow Unexecuted instantiation: rescaler_sse2.c:CheckSizeOverflow Unexecuted instantiation: yuv_sse2.c:CheckSizeOverflow Unexecuted instantiation: dec_sse41.c:CheckSizeOverflow Unexecuted instantiation: yuv_sse41.c:CheckSizeOverflow Unexecuted instantiation: alpha_enc.c:CheckSizeOverflow Unexecuted instantiation: analysis_enc.c:CheckSizeOverflow Unexecuted instantiation: frame_enc.c:CheckSizeOverflow Unexecuted instantiation: iterator_enc.c:CheckSizeOverflow Unexecuted instantiation: picture_csp_enc.c:CheckSizeOverflow Unexecuted instantiation: picture_tools_enc.c:CheckSizeOverflow Unexecuted instantiation: quant_enc.c:CheckSizeOverflow Unexecuted instantiation: syntax_enc.c:CheckSizeOverflow Unexecuted instantiation: token_enc.c:CheckSizeOverflow Unexecuted instantiation: tree_enc.c:CheckSizeOverflow Unexecuted instantiation: vp8l_enc.c:CheckSizeOverflow Unexecuted instantiation: bit_reader_utils.c:CheckSizeOverflow Unexecuted instantiation: bit_writer_utils.c:CheckSizeOverflow Unexecuted instantiation: color_cache_utils.c:CheckSizeOverflow Unexecuted instantiation: huffman_encode_utils.c:CheckSizeOverflow Unexecuted instantiation: huffman_utils.c:CheckSizeOverflow Unexecuted instantiation: palette.c:CheckSizeOverflow Unexecuted instantiation: thread_utils.c:CheckSizeOverflow Unexecuted instantiation: alpha_dec.c:CheckSizeOverflow Unexecuted instantiation: tree_dec.c:CheckSizeOverflow Unexecuted instantiation: lossless_enc.c:CheckSizeOverflow Unexecuted instantiation: lossless_enc_sse2.c:CheckSizeOverflow Unexecuted instantiation: backward_references_enc.c:CheckSizeOverflow Unexecuted instantiation: cost_enc.c:CheckSizeOverflow Unexecuted instantiation: filter_enc.c:CheckSizeOverflow Unexecuted instantiation: histogram_enc.c:CheckSizeOverflow Unexecuted instantiation: near_lossless_enc.c:CheckSizeOverflow Unexecuted instantiation: picture_rescale_enc.c:CheckSizeOverflow Unexecuted instantiation: predictor_enc.c:CheckSizeOverflow Unexecuted instantiation: quant_levels_dec_utils.c:CheckSizeOverflow Unexecuted instantiation: backward_references_cost_enc.c:CheckSizeOverflow  | 
46  |  |  | 
47  |  | // size-checking safe malloc/calloc: verify that the requested size is not too  | 
48  |  | // large, or return NULL. You don't need to call these for constructs like  | 
49  |  | // malloc(sizeof(foo)), but only if there's picture-dependent size involved  | 
50  |  | // somewhere (like: malloc(num_pixels * sizeof(*something))). That's why this  | 
51  |  | // safe malloc() borrows the signature from calloc(), pointing at the dangerous  | 
52  |  | // underlying multiply involved.  | 
53  |  | WEBP_EXTERN void* WebPSafeMalloc(uint64_t nmemb, size_t size);  | 
54  |  | // Note that WebPSafeCalloc() expects the second argument type to be 'size_t'  | 
55  |  | // in order to favor the "calloc(num_foo, sizeof(foo))" pattern.  | 
56  |  | WEBP_EXTERN void* WebPSafeCalloc(uint64_t nmemb, size_t size);  | 
57  |  |  | 
58  |  | // Companion deallocation function to the above allocations.  | 
59  |  | WEBP_EXTERN void WebPSafeFree(void* const ptr);  | 
60  |  |  | 
61  |  | //------------------------------------------------------------------------------  | 
62  |  | // Alignment  | 
63  |  |  | 
64  | 0  | #define WEBP_ALIGN_CST 31  | 
65  | 0  | #define WEBP_ALIGN(PTR) (((uintptr_t)(PTR) + WEBP_ALIGN_CST) & \  | 
66  | 0  |                          ~(uintptr_t)WEBP_ALIGN_CST)  | 
67  |  |  | 
68  |  | #include <string.h>  | 
69  |  | // memcpy() is the safe way of moving potentially unaligned 32b memory.  | 
70  | 0  | static WEBP_INLINE uint32_t WebPMemToUint32(const uint8_t* const ptr) { | 
71  | 0  |   uint32_t A;  | 
72  | 0  |   memcpy(&A, ptr, sizeof(A));  | 
73  | 0  |   return A;  | 
74  | 0  | } Unexecuted instantiation: webp_dec.c:WebPMemToUint32 Unexecuted instantiation: picture_enc.c:WebPMemToUint32 Unexecuted instantiation: webp_enc.c:WebPMemToUint32 Unexecuted instantiation: rescaler_utils.c:WebPMemToUint32 Unexecuted instantiation: utils.c:WebPMemToUint32 Unexecuted instantiation: buffer_dec.c:WebPMemToUint32 Unexecuted instantiation: frame_dec.c:WebPMemToUint32 Unexecuted instantiation: io_dec.c:WebPMemToUint32 Unexecuted instantiation: vp8_dec.c:WebPMemToUint32 Unexecuted instantiation: vp8l_dec.c:WebPMemToUint32 Unexecuted instantiation: cost.c:WebPMemToUint32 Unexecuted instantiation: dec.c:WebPMemToUint32 Unexecuted instantiation: enc.c:WebPMemToUint32 Unexecuted instantiation: lossless.c:WebPMemToUint32 Unexecuted instantiation: cost_sse2.c:WebPMemToUint32 Unexecuted instantiation: enc_sse2.c:WebPMemToUint32 Unexecuted instantiation: enc_sse41.c:WebPMemToUint32 Unexecuted instantiation: dec_sse2.c:WebPMemToUint32 Unexecuted instantiation: lossless_sse2.c:WebPMemToUint32 Unexecuted instantiation: rescaler_sse2.c:WebPMemToUint32 Unexecuted instantiation: yuv_sse2.c:WebPMemToUint32 Unexecuted instantiation: dec_sse41.c:WebPMemToUint32 Unexecuted instantiation: yuv_sse41.c:WebPMemToUint32 Unexecuted instantiation: alpha_enc.c:WebPMemToUint32 Unexecuted instantiation: analysis_enc.c:WebPMemToUint32 Unexecuted instantiation: frame_enc.c:WebPMemToUint32 Unexecuted instantiation: iterator_enc.c:WebPMemToUint32 Unexecuted instantiation: picture_csp_enc.c:WebPMemToUint32 Unexecuted instantiation: picture_tools_enc.c:WebPMemToUint32 Unexecuted instantiation: quant_enc.c:WebPMemToUint32 Unexecuted instantiation: syntax_enc.c:WebPMemToUint32 Unexecuted instantiation: token_enc.c:WebPMemToUint32 Unexecuted instantiation: tree_enc.c:WebPMemToUint32 Unexecuted instantiation: vp8l_enc.c:WebPMemToUint32 Unexecuted instantiation: bit_reader_utils.c:WebPMemToUint32 Unexecuted instantiation: bit_writer_utils.c:WebPMemToUint32 Unexecuted instantiation: color_cache_utils.c:WebPMemToUint32 Unexecuted instantiation: huffman_encode_utils.c:WebPMemToUint32 Unexecuted instantiation: huffman_utils.c:WebPMemToUint32 Unexecuted instantiation: palette.c:WebPMemToUint32 Unexecuted instantiation: thread_utils.c:WebPMemToUint32 Unexecuted instantiation: alpha_dec.c:WebPMemToUint32 Unexecuted instantiation: tree_dec.c:WebPMemToUint32 Unexecuted instantiation: lossless_enc.c:WebPMemToUint32 Unexecuted instantiation: lossless_enc_sse2.c:WebPMemToUint32 Unexecuted instantiation: backward_references_enc.c:WebPMemToUint32 Unexecuted instantiation: cost_enc.c:WebPMemToUint32 Unexecuted instantiation: filter_enc.c:WebPMemToUint32 Unexecuted instantiation: histogram_enc.c:WebPMemToUint32 Unexecuted instantiation: near_lossless_enc.c:WebPMemToUint32 Unexecuted instantiation: picture_rescale_enc.c:WebPMemToUint32 Unexecuted instantiation: predictor_enc.c:WebPMemToUint32 Unexecuted instantiation: quant_levels_dec_utils.c:WebPMemToUint32 Unexecuted instantiation: backward_references_cost_enc.c:WebPMemToUint32  | 
75  |  |  | 
76  | 0  | static WEBP_INLINE int32_t WebPMemToInt32(const uint8_t* const ptr) { | 
77  | 0  |   return (int32_t)WebPMemToUint32(ptr);  | 
78  | 0  | } Unexecuted instantiation: webp_dec.c:WebPMemToInt32 Unexecuted instantiation: picture_enc.c:WebPMemToInt32 Unexecuted instantiation: webp_enc.c:WebPMemToInt32 Unexecuted instantiation: rescaler_utils.c:WebPMemToInt32 Unexecuted instantiation: utils.c:WebPMemToInt32 Unexecuted instantiation: buffer_dec.c:WebPMemToInt32 Unexecuted instantiation: frame_dec.c:WebPMemToInt32 Unexecuted instantiation: io_dec.c:WebPMemToInt32 Unexecuted instantiation: vp8_dec.c:WebPMemToInt32 Unexecuted instantiation: vp8l_dec.c:WebPMemToInt32 Unexecuted instantiation: cost.c:WebPMemToInt32 Unexecuted instantiation: dec.c:WebPMemToInt32 Unexecuted instantiation: enc.c:WebPMemToInt32 Unexecuted instantiation: lossless.c:WebPMemToInt32 Unexecuted instantiation: cost_sse2.c:WebPMemToInt32 Unexecuted instantiation: enc_sse2.c:WebPMemToInt32 Unexecuted instantiation: enc_sse41.c:WebPMemToInt32 Unexecuted instantiation: dec_sse2.c:WebPMemToInt32 Unexecuted instantiation: lossless_sse2.c:WebPMemToInt32 Unexecuted instantiation: rescaler_sse2.c:WebPMemToInt32 Unexecuted instantiation: yuv_sse2.c:WebPMemToInt32 Unexecuted instantiation: dec_sse41.c:WebPMemToInt32 Unexecuted instantiation: yuv_sse41.c:WebPMemToInt32 Unexecuted instantiation: alpha_enc.c:WebPMemToInt32 Unexecuted instantiation: analysis_enc.c:WebPMemToInt32 Unexecuted instantiation: frame_enc.c:WebPMemToInt32 Unexecuted instantiation: iterator_enc.c:WebPMemToInt32 Unexecuted instantiation: picture_csp_enc.c:WebPMemToInt32 Unexecuted instantiation: picture_tools_enc.c:WebPMemToInt32 Unexecuted instantiation: quant_enc.c:WebPMemToInt32 Unexecuted instantiation: syntax_enc.c:WebPMemToInt32 Unexecuted instantiation: token_enc.c:WebPMemToInt32 Unexecuted instantiation: tree_enc.c:WebPMemToInt32 Unexecuted instantiation: vp8l_enc.c:WebPMemToInt32 Unexecuted instantiation: bit_reader_utils.c:WebPMemToInt32 Unexecuted instantiation: bit_writer_utils.c:WebPMemToInt32 Unexecuted instantiation: color_cache_utils.c:WebPMemToInt32 Unexecuted instantiation: huffman_encode_utils.c:WebPMemToInt32 Unexecuted instantiation: huffman_utils.c:WebPMemToInt32 Unexecuted instantiation: palette.c:WebPMemToInt32 Unexecuted instantiation: thread_utils.c:WebPMemToInt32 Unexecuted instantiation: alpha_dec.c:WebPMemToInt32 Unexecuted instantiation: tree_dec.c:WebPMemToInt32 Unexecuted instantiation: lossless_enc.c:WebPMemToInt32 Unexecuted instantiation: lossless_enc_sse2.c:WebPMemToInt32 Unexecuted instantiation: backward_references_enc.c:WebPMemToInt32 Unexecuted instantiation: cost_enc.c:WebPMemToInt32 Unexecuted instantiation: filter_enc.c:WebPMemToInt32 Unexecuted instantiation: histogram_enc.c:WebPMemToInt32 Unexecuted instantiation: near_lossless_enc.c:WebPMemToInt32 Unexecuted instantiation: picture_rescale_enc.c:WebPMemToInt32 Unexecuted instantiation: predictor_enc.c:WebPMemToInt32 Unexecuted instantiation: quant_levels_dec_utils.c:WebPMemToInt32 Unexecuted instantiation: backward_references_cost_enc.c:WebPMemToInt32  | 
79  |  |  | 
80  | 0  | static WEBP_INLINE void WebPUint32ToMem(uint8_t* const ptr, uint32_t val) { | 
81  | 0  |   memcpy(ptr, &val, sizeof(val));  | 
82  | 0  | } Unexecuted instantiation: webp_dec.c:WebPUint32ToMem Unexecuted instantiation: picture_enc.c:WebPUint32ToMem Unexecuted instantiation: webp_enc.c:WebPUint32ToMem Unexecuted instantiation: rescaler_utils.c:WebPUint32ToMem Unexecuted instantiation: utils.c:WebPUint32ToMem Unexecuted instantiation: buffer_dec.c:WebPUint32ToMem Unexecuted instantiation: frame_dec.c:WebPUint32ToMem Unexecuted instantiation: io_dec.c:WebPUint32ToMem Unexecuted instantiation: vp8_dec.c:WebPUint32ToMem Unexecuted instantiation: vp8l_dec.c:WebPUint32ToMem Unexecuted instantiation: cost.c:WebPUint32ToMem Unexecuted instantiation: dec.c:WebPUint32ToMem Unexecuted instantiation: enc.c:WebPUint32ToMem Unexecuted instantiation: lossless.c:WebPUint32ToMem Unexecuted instantiation: cost_sse2.c:WebPUint32ToMem Unexecuted instantiation: enc_sse2.c:WebPUint32ToMem Unexecuted instantiation: enc_sse41.c:WebPUint32ToMem Unexecuted instantiation: dec_sse2.c:WebPUint32ToMem Unexecuted instantiation: lossless_sse2.c:WebPUint32ToMem Unexecuted instantiation: rescaler_sse2.c:WebPUint32ToMem Unexecuted instantiation: yuv_sse2.c:WebPUint32ToMem Unexecuted instantiation: dec_sse41.c:WebPUint32ToMem Unexecuted instantiation: yuv_sse41.c:WebPUint32ToMem Unexecuted instantiation: alpha_enc.c:WebPUint32ToMem Unexecuted instantiation: analysis_enc.c:WebPUint32ToMem Unexecuted instantiation: frame_enc.c:WebPUint32ToMem Unexecuted instantiation: iterator_enc.c:WebPUint32ToMem Unexecuted instantiation: picture_csp_enc.c:WebPUint32ToMem Unexecuted instantiation: picture_tools_enc.c:WebPUint32ToMem Unexecuted instantiation: quant_enc.c:WebPUint32ToMem Unexecuted instantiation: syntax_enc.c:WebPUint32ToMem Unexecuted instantiation: token_enc.c:WebPUint32ToMem Unexecuted instantiation: tree_enc.c:WebPUint32ToMem Unexecuted instantiation: vp8l_enc.c:WebPUint32ToMem Unexecuted instantiation: bit_reader_utils.c:WebPUint32ToMem Unexecuted instantiation: bit_writer_utils.c:WebPUint32ToMem Unexecuted instantiation: color_cache_utils.c:WebPUint32ToMem Unexecuted instantiation: huffman_encode_utils.c:WebPUint32ToMem Unexecuted instantiation: huffman_utils.c:WebPUint32ToMem Unexecuted instantiation: palette.c:WebPUint32ToMem Unexecuted instantiation: thread_utils.c:WebPUint32ToMem Unexecuted instantiation: alpha_dec.c:WebPUint32ToMem Unexecuted instantiation: tree_dec.c:WebPUint32ToMem Unexecuted instantiation: lossless_enc.c:WebPUint32ToMem Unexecuted instantiation: lossless_enc_sse2.c:WebPUint32ToMem Unexecuted instantiation: backward_references_enc.c:WebPUint32ToMem Unexecuted instantiation: cost_enc.c:WebPUint32ToMem Unexecuted instantiation: filter_enc.c:WebPUint32ToMem Unexecuted instantiation: histogram_enc.c:WebPUint32ToMem Unexecuted instantiation: near_lossless_enc.c:WebPUint32ToMem Unexecuted instantiation: picture_rescale_enc.c:WebPUint32ToMem Unexecuted instantiation: predictor_enc.c:WebPUint32ToMem Unexecuted instantiation: quant_levels_dec_utils.c:WebPUint32ToMem Unexecuted instantiation: backward_references_cost_enc.c:WebPUint32ToMem  | 
83  |  |  | 
84  | 0  | static WEBP_INLINE void WebPInt32ToMem(uint8_t* const ptr, int val) { | 
85  | 0  |   WebPUint32ToMem(ptr, (uint32_t)val);  | 
86  | 0  | } Unexecuted instantiation: webp_dec.c:WebPInt32ToMem Unexecuted instantiation: picture_enc.c:WebPInt32ToMem Unexecuted instantiation: webp_enc.c:WebPInt32ToMem Unexecuted instantiation: rescaler_utils.c:WebPInt32ToMem Unexecuted instantiation: utils.c:WebPInt32ToMem Unexecuted instantiation: buffer_dec.c:WebPInt32ToMem Unexecuted instantiation: frame_dec.c:WebPInt32ToMem Unexecuted instantiation: io_dec.c:WebPInt32ToMem Unexecuted instantiation: vp8_dec.c:WebPInt32ToMem Unexecuted instantiation: vp8l_dec.c:WebPInt32ToMem Unexecuted instantiation: cost.c:WebPInt32ToMem Unexecuted instantiation: dec.c:WebPInt32ToMem Unexecuted instantiation: enc.c:WebPInt32ToMem Unexecuted instantiation: lossless.c:WebPInt32ToMem Unexecuted instantiation: cost_sse2.c:WebPInt32ToMem Unexecuted instantiation: enc_sse2.c:WebPInt32ToMem Unexecuted instantiation: enc_sse41.c:WebPInt32ToMem Unexecuted instantiation: dec_sse2.c:WebPInt32ToMem Unexecuted instantiation: lossless_sse2.c:WebPInt32ToMem Unexecuted instantiation: rescaler_sse2.c:WebPInt32ToMem Unexecuted instantiation: yuv_sse2.c:WebPInt32ToMem Unexecuted instantiation: dec_sse41.c:WebPInt32ToMem Unexecuted instantiation: yuv_sse41.c:WebPInt32ToMem Unexecuted instantiation: alpha_enc.c:WebPInt32ToMem Unexecuted instantiation: analysis_enc.c:WebPInt32ToMem Unexecuted instantiation: frame_enc.c:WebPInt32ToMem Unexecuted instantiation: iterator_enc.c:WebPInt32ToMem Unexecuted instantiation: picture_csp_enc.c:WebPInt32ToMem Unexecuted instantiation: picture_tools_enc.c:WebPInt32ToMem Unexecuted instantiation: quant_enc.c:WebPInt32ToMem Unexecuted instantiation: syntax_enc.c:WebPInt32ToMem Unexecuted instantiation: token_enc.c:WebPInt32ToMem Unexecuted instantiation: tree_enc.c:WebPInt32ToMem Unexecuted instantiation: vp8l_enc.c:WebPInt32ToMem Unexecuted instantiation: bit_reader_utils.c:WebPInt32ToMem Unexecuted instantiation: bit_writer_utils.c:WebPInt32ToMem Unexecuted instantiation: color_cache_utils.c:WebPInt32ToMem Unexecuted instantiation: huffman_encode_utils.c:WebPInt32ToMem Unexecuted instantiation: huffman_utils.c:WebPInt32ToMem Unexecuted instantiation: palette.c:WebPInt32ToMem Unexecuted instantiation: thread_utils.c:WebPInt32ToMem Unexecuted instantiation: alpha_dec.c:WebPInt32ToMem Unexecuted instantiation: tree_dec.c:WebPInt32ToMem Unexecuted instantiation: lossless_enc.c:WebPInt32ToMem Unexecuted instantiation: lossless_enc_sse2.c:WebPInt32ToMem Unexecuted instantiation: backward_references_enc.c:WebPInt32ToMem Unexecuted instantiation: cost_enc.c:WebPInt32ToMem Unexecuted instantiation: filter_enc.c:WebPInt32ToMem Unexecuted instantiation: histogram_enc.c:WebPInt32ToMem Unexecuted instantiation: near_lossless_enc.c:WebPInt32ToMem Unexecuted instantiation: picture_rescale_enc.c:WebPInt32ToMem Unexecuted instantiation: predictor_enc.c:WebPInt32ToMem Unexecuted instantiation: quant_levels_dec_utils.c:WebPInt32ToMem Unexecuted instantiation: backward_references_cost_enc.c:WebPInt32ToMem  | 
87  |  |  | 
88  |  | //------------------------------------------------------------------------------  | 
89  |  | // Reading/writing data.  | 
90  |  |  | 
91  |  | // Read 16, 24 or 32 bits stored in little-endian order.  | 
92  | 0  | static WEBP_INLINE int GetLE16(const uint8_t* const data) { | 
93  | 0  |   return (int)(data[0] << 0) | (data[1] << 8);  | 
94  | 0  | } Unexecuted instantiation: webp_dec.c:GetLE16 Unexecuted instantiation: picture_enc.c:GetLE16 Unexecuted instantiation: webp_enc.c:GetLE16 Unexecuted instantiation: rescaler_utils.c:GetLE16 Unexecuted instantiation: utils.c:GetLE16 Unexecuted instantiation: buffer_dec.c:GetLE16 Unexecuted instantiation: frame_dec.c:GetLE16 Unexecuted instantiation: io_dec.c:GetLE16 Unexecuted instantiation: vp8_dec.c:GetLE16 Unexecuted instantiation: vp8l_dec.c:GetLE16 Unexecuted instantiation: cost.c:GetLE16 Unexecuted instantiation: dec.c:GetLE16 Unexecuted instantiation: enc.c:GetLE16 Unexecuted instantiation: lossless.c:GetLE16 Unexecuted instantiation: cost_sse2.c:GetLE16 Unexecuted instantiation: enc_sse2.c:GetLE16 Unexecuted instantiation: enc_sse41.c:GetLE16 Unexecuted instantiation: dec_sse2.c:GetLE16 Unexecuted instantiation: lossless_sse2.c:GetLE16 Unexecuted instantiation: rescaler_sse2.c:GetLE16 Unexecuted instantiation: yuv_sse2.c:GetLE16 Unexecuted instantiation: dec_sse41.c:GetLE16 Unexecuted instantiation: yuv_sse41.c:GetLE16 Unexecuted instantiation: alpha_enc.c:GetLE16 Unexecuted instantiation: analysis_enc.c:GetLE16 Unexecuted instantiation: frame_enc.c:GetLE16 Unexecuted instantiation: iterator_enc.c:GetLE16 Unexecuted instantiation: picture_csp_enc.c:GetLE16 Unexecuted instantiation: picture_tools_enc.c:GetLE16 Unexecuted instantiation: quant_enc.c:GetLE16 Unexecuted instantiation: syntax_enc.c:GetLE16 Unexecuted instantiation: token_enc.c:GetLE16 Unexecuted instantiation: tree_enc.c:GetLE16 Unexecuted instantiation: vp8l_enc.c:GetLE16 Unexecuted instantiation: bit_reader_utils.c:GetLE16 Unexecuted instantiation: bit_writer_utils.c:GetLE16 Unexecuted instantiation: color_cache_utils.c:GetLE16 Unexecuted instantiation: huffman_encode_utils.c:GetLE16 Unexecuted instantiation: huffman_utils.c:GetLE16 Unexecuted instantiation: palette.c:GetLE16 Unexecuted instantiation: thread_utils.c:GetLE16 Unexecuted instantiation: alpha_dec.c:GetLE16 Unexecuted instantiation: tree_dec.c:GetLE16 Unexecuted instantiation: lossless_enc.c:GetLE16 Unexecuted instantiation: lossless_enc_sse2.c:GetLE16 Unexecuted instantiation: backward_references_enc.c:GetLE16 Unexecuted instantiation: cost_enc.c:GetLE16 Unexecuted instantiation: filter_enc.c:GetLE16 Unexecuted instantiation: histogram_enc.c:GetLE16 Unexecuted instantiation: near_lossless_enc.c:GetLE16 Unexecuted instantiation: picture_rescale_enc.c:GetLE16 Unexecuted instantiation: predictor_enc.c:GetLE16 Unexecuted instantiation: quant_levels_dec_utils.c:GetLE16 Unexecuted instantiation: backward_references_cost_enc.c:GetLE16  | 
95  |  |  | 
96  | 0  | static WEBP_INLINE int GetLE24(const uint8_t* const data) { | 
97  | 0  |   return GetLE16(data) | (data[2] << 16);  | 
98  | 0  | } Unexecuted instantiation: webp_dec.c:GetLE24 Unexecuted instantiation: picture_enc.c:GetLE24 Unexecuted instantiation: webp_enc.c:GetLE24 Unexecuted instantiation: rescaler_utils.c:GetLE24 Unexecuted instantiation: utils.c:GetLE24 Unexecuted instantiation: buffer_dec.c:GetLE24 Unexecuted instantiation: frame_dec.c:GetLE24 Unexecuted instantiation: io_dec.c:GetLE24 Unexecuted instantiation: vp8_dec.c:GetLE24 Unexecuted instantiation: vp8l_dec.c:GetLE24 Unexecuted instantiation: cost.c:GetLE24 Unexecuted instantiation: dec.c:GetLE24 Unexecuted instantiation: enc.c:GetLE24 Unexecuted instantiation: lossless.c:GetLE24 Unexecuted instantiation: cost_sse2.c:GetLE24 Unexecuted instantiation: enc_sse2.c:GetLE24 Unexecuted instantiation: enc_sse41.c:GetLE24 Unexecuted instantiation: dec_sse2.c:GetLE24 Unexecuted instantiation: lossless_sse2.c:GetLE24 Unexecuted instantiation: rescaler_sse2.c:GetLE24 Unexecuted instantiation: yuv_sse2.c:GetLE24 Unexecuted instantiation: dec_sse41.c:GetLE24 Unexecuted instantiation: yuv_sse41.c:GetLE24 Unexecuted instantiation: alpha_enc.c:GetLE24 Unexecuted instantiation: analysis_enc.c:GetLE24 Unexecuted instantiation: frame_enc.c:GetLE24 Unexecuted instantiation: iterator_enc.c:GetLE24 Unexecuted instantiation: picture_csp_enc.c:GetLE24 Unexecuted instantiation: picture_tools_enc.c:GetLE24 Unexecuted instantiation: quant_enc.c:GetLE24 Unexecuted instantiation: syntax_enc.c:GetLE24 Unexecuted instantiation: token_enc.c:GetLE24 Unexecuted instantiation: tree_enc.c:GetLE24 Unexecuted instantiation: vp8l_enc.c:GetLE24 Unexecuted instantiation: bit_reader_utils.c:GetLE24 Unexecuted instantiation: bit_writer_utils.c:GetLE24 Unexecuted instantiation: color_cache_utils.c:GetLE24 Unexecuted instantiation: huffman_encode_utils.c:GetLE24 Unexecuted instantiation: huffman_utils.c:GetLE24 Unexecuted instantiation: palette.c:GetLE24 Unexecuted instantiation: thread_utils.c:GetLE24 Unexecuted instantiation: alpha_dec.c:GetLE24 Unexecuted instantiation: tree_dec.c:GetLE24 Unexecuted instantiation: lossless_enc.c:GetLE24 Unexecuted instantiation: lossless_enc_sse2.c:GetLE24 Unexecuted instantiation: backward_references_enc.c:GetLE24 Unexecuted instantiation: cost_enc.c:GetLE24 Unexecuted instantiation: filter_enc.c:GetLE24 Unexecuted instantiation: histogram_enc.c:GetLE24 Unexecuted instantiation: near_lossless_enc.c:GetLE24 Unexecuted instantiation: picture_rescale_enc.c:GetLE24 Unexecuted instantiation: predictor_enc.c:GetLE24 Unexecuted instantiation: quant_levels_dec_utils.c:GetLE24 Unexecuted instantiation: backward_references_cost_enc.c:GetLE24  | 
99  |  |  | 
100  | 0  | static WEBP_INLINE uint32_t GetLE32(const uint8_t* const data) { | 
101  | 0  |   return GetLE16(data) | ((uint32_t)GetLE16(data + 2) << 16);  | 
102  | 0  | } Unexecuted instantiation: webp_dec.c:GetLE32 Unexecuted instantiation: picture_enc.c:GetLE32 Unexecuted instantiation: webp_enc.c:GetLE32 Unexecuted instantiation: rescaler_utils.c:GetLE32 Unexecuted instantiation: utils.c:GetLE32 Unexecuted instantiation: buffer_dec.c:GetLE32 Unexecuted instantiation: frame_dec.c:GetLE32 Unexecuted instantiation: io_dec.c:GetLE32 Unexecuted instantiation: vp8_dec.c:GetLE32 Unexecuted instantiation: vp8l_dec.c:GetLE32 Unexecuted instantiation: cost.c:GetLE32 Unexecuted instantiation: dec.c:GetLE32 Unexecuted instantiation: enc.c:GetLE32 Unexecuted instantiation: lossless.c:GetLE32 Unexecuted instantiation: cost_sse2.c:GetLE32 Unexecuted instantiation: enc_sse2.c:GetLE32 Unexecuted instantiation: enc_sse41.c:GetLE32 Unexecuted instantiation: dec_sse2.c:GetLE32 Unexecuted instantiation: lossless_sse2.c:GetLE32 Unexecuted instantiation: rescaler_sse2.c:GetLE32 Unexecuted instantiation: yuv_sse2.c:GetLE32 Unexecuted instantiation: dec_sse41.c:GetLE32 Unexecuted instantiation: yuv_sse41.c:GetLE32 Unexecuted instantiation: alpha_enc.c:GetLE32 Unexecuted instantiation: analysis_enc.c:GetLE32 Unexecuted instantiation: frame_enc.c:GetLE32 Unexecuted instantiation: iterator_enc.c:GetLE32 Unexecuted instantiation: picture_csp_enc.c:GetLE32 Unexecuted instantiation: picture_tools_enc.c:GetLE32 Unexecuted instantiation: quant_enc.c:GetLE32 Unexecuted instantiation: syntax_enc.c:GetLE32 Unexecuted instantiation: token_enc.c:GetLE32 Unexecuted instantiation: tree_enc.c:GetLE32 Unexecuted instantiation: vp8l_enc.c:GetLE32 Unexecuted instantiation: bit_reader_utils.c:GetLE32 Unexecuted instantiation: bit_writer_utils.c:GetLE32 Unexecuted instantiation: color_cache_utils.c:GetLE32 Unexecuted instantiation: huffman_encode_utils.c:GetLE32 Unexecuted instantiation: huffman_utils.c:GetLE32 Unexecuted instantiation: palette.c:GetLE32 Unexecuted instantiation: thread_utils.c:GetLE32 Unexecuted instantiation: alpha_dec.c:GetLE32 Unexecuted instantiation: tree_dec.c:GetLE32 Unexecuted instantiation: lossless_enc.c:GetLE32 Unexecuted instantiation: lossless_enc_sse2.c:GetLE32 Unexecuted instantiation: backward_references_enc.c:GetLE32 Unexecuted instantiation: cost_enc.c:GetLE32 Unexecuted instantiation: filter_enc.c:GetLE32 Unexecuted instantiation: histogram_enc.c:GetLE32 Unexecuted instantiation: near_lossless_enc.c:GetLE32 Unexecuted instantiation: picture_rescale_enc.c:GetLE32 Unexecuted instantiation: predictor_enc.c:GetLE32 Unexecuted instantiation: quant_levels_dec_utils.c:GetLE32 Unexecuted instantiation: backward_references_cost_enc.c:GetLE32  | 
103  |  |  | 
104  |  | // Store 16, 24 or 32 bits in little-endian order.  | 
105  | 0  | static WEBP_INLINE void PutLE16(uint8_t* const data, int val) { | 
106  | 0  |   assert(val < (1 << 16));  | 
107  | 0  |   data[0] = (val >> 0) & 0xff;  | 
108  | 0  |   data[1] = (val >> 8) & 0xff;  | 
109  | 0  | } Unexecuted instantiation: webp_dec.c:PutLE16 Unexecuted instantiation: picture_enc.c:PutLE16 Unexecuted instantiation: webp_enc.c:PutLE16 Unexecuted instantiation: rescaler_utils.c:PutLE16 Unexecuted instantiation: utils.c:PutLE16 Unexecuted instantiation: buffer_dec.c:PutLE16 Unexecuted instantiation: frame_dec.c:PutLE16 Unexecuted instantiation: io_dec.c:PutLE16 Unexecuted instantiation: vp8_dec.c:PutLE16 Unexecuted instantiation: vp8l_dec.c:PutLE16 Unexecuted instantiation: cost.c:PutLE16 Unexecuted instantiation: dec.c:PutLE16 Unexecuted instantiation: enc.c:PutLE16 Unexecuted instantiation: lossless.c:PutLE16 Unexecuted instantiation: cost_sse2.c:PutLE16 Unexecuted instantiation: enc_sse2.c:PutLE16 Unexecuted instantiation: enc_sse41.c:PutLE16 Unexecuted instantiation: dec_sse2.c:PutLE16 Unexecuted instantiation: lossless_sse2.c:PutLE16 Unexecuted instantiation: rescaler_sse2.c:PutLE16 Unexecuted instantiation: yuv_sse2.c:PutLE16 Unexecuted instantiation: dec_sse41.c:PutLE16 Unexecuted instantiation: yuv_sse41.c:PutLE16 Unexecuted instantiation: alpha_enc.c:PutLE16 Unexecuted instantiation: analysis_enc.c:PutLE16 Unexecuted instantiation: frame_enc.c:PutLE16 Unexecuted instantiation: iterator_enc.c:PutLE16 Unexecuted instantiation: picture_csp_enc.c:PutLE16 Unexecuted instantiation: picture_tools_enc.c:PutLE16 Unexecuted instantiation: quant_enc.c:PutLE16 Unexecuted instantiation: syntax_enc.c:PutLE16 Unexecuted instantiation: token_enc.c:PutLE16 Unexecuted instantiation: tree_enc.c:PutLE16 Unexecuted instantiation: vp8l_enc.c:PutLE16 Unexecuted instantiation: bit_reader_utils.c:PutLE16 Unexecuted instantiation: bit_writer_utils.c:PutLE16 Unexecuted instantiation: color_cache_utils.c:PutLE16 Unexecuted instantiation: huffman_encode_utils.c:PutLE16 Unexecuted instantiation: huffman_utils.c:PutLE16 Unexecuted instantiation: palette.c:PutLE16 Unexecuted instantiation: thread_utils.c:PutLE16 Unexecuted instantiation: alpha_dec.c:PutLE16 Unexecuted instantiation: tree_dec.c:PutLE16 Unexecuted instantiation: lossless_enc.c:PutLE16 Unexecuted instantiation: lossless_enc_sse2.c:PutLE16 Unexecuted instantiation: backward_references_enc.c:PutLE16 Unexecuted instantiation: cost_enc.c:PutLE16 Unexecuted instantiation: filter_enc.c:PutLE16 Unexecuted instantiation: histogram_enc.c:PutLE16 Unexecuted instantiation: near_lossless_enc.c:PutLE16 Unexecuted instantiation: picture_rescale_enc.c:PutLE16 Unexecuted instantiation: predictor_enc.c:PutLE16 Unexecuted instantiation: quant_levels_dec_utils.c:PutLE16 Unexecuted instantiation: backward_references_cost_enc.c:PutLE16  | 
110  |  |  | 
111  | 0  | static WEBP_INLINE void PutLE24(uint8_t* const data, int val) { | 
112  | 0  |   assert(val < (1 << 24));  | 
113  | 0  |   PutLE16(data, val & 0xffff);  | 
114  | 0  |   data[2] = (val >> 16) & 0xff;  | 
115  | 0  | } Unexecuted instantiation: webp_dec.c:PutLE24 Unexecuted instantiation: picture_enc.c:PutLE24 Unexecuted instantiation: webp_enc.c:PutLE24 Unexecuted instantiation: rescaler_utils.c:PutLE24 Unexecuted instantiation: utils.c:PutLE24 Unexecuted instantiation: buffer_dec.c:PutLE24 Unexecuted instantiation: frame_dec.c:PutLE24 Unexecuted instantiation: io_dec.c:PutLE24 Unexecuted instantiation: vp8_dec.c:PutLE24 Unexecuted instantiation: vp8l_dec.c:PutLE24 Unexecuted instantiation: cost.c:PutLE24 Unexecuted instantiation: dec.c:PutLE24 Unexecuted instantiation: enc.c:PutLE24 Unexecuted instantiation: lossless.c:PutLE24 Unexecuted instantiation: cost_sse2.c:PutLE24 Unexecuted instantiation: enc_sse2.c:PutLE24 Unexecuted instantiation: enc_sse41.c:PutLE24 Unexecuted instantiation: dec_sse2.c:PutLE24 Unexecuted instantiation: lossless_sse2.c:PutLE24 Unexecuted instantiation: rescaler_sse2.c:PutLE24 Unexecuted instantiation: yuv_sse2.c:PutLE24 Unexecuted instantiation: dec_sse41.c:PutLE24 Unexecuted instantiation: yuv_sse41.c:PutLE24 Unexecuted instantiation: alpha_enc.c:PutLE24 Unexecuted instantiation: analysis_enc.c:PutLE24 Unexecuted instantiation: frame_enc.c:PutLE24 Unexecuted instantiation: iterator_enc.c:PutLE24 Unexecuted instantiation: picture_csp_enc.c:PutLE24 Unexecuted instantiation: picture_tools_enc.c:PutLE24 Unexecuted instantiation: quant_enc.c:PutLE24 Unexecuted instantiation: syntax_enc.c:PutLE24 Unexecuted instantiation: token_enc.c:PutLE24 Unexecuted instantiation: tree_enc.c:PutLE24 Unexecuted instantiation: vp8l_enc.c:PutLE24 Unexecuted instantiation: bit_reader_utils.c:PutLE24 Unexecuted instantiation: bit_writer_utils.c:PutLE24 Unexecuted instantiation: color_cache_utils.c:PutLE24 Unexecuted instantiation: huffman_encode_utils.c:PutLE24 Unexecuted instantiation: huffman_utils.c:PutLE24 Unexecuted instantiation: palette.c:PutLE24 Unexecuted instantiation: thread_utils.c:PutLE24 Unexecuted instantiation: alpha_dec.c:PutLE24 Unexecuted instantiation: tree_dec.c:PutLE24 Unexecuted instantiation: lossless_enc.c:PutLE24 Unexecuted instantiation: lossless_enc_sse2.c:PutLE24 Unexecuted instantiation: backward_references_enc.c:PutLE24 Unexecuted instantiation: cost_enc.c:PutLE24 Unexecuted instantiation: filter_enc.c:PutLE24 Unexecuted instantiation: histogram_enc.c:PutLE24 Unexecuted instantiation: near_lossless_enc.c:PutLE24 Unexecuted instantiation: picture_rescale_enc.c:PutLE24 Unexecuted instantiation: predictor_enc.c:PutLE24 Unexecuted instantiation: quant_levels_dec_utils.c:PutLE24 Unexecuted instantiation: backward_references_cost_enc.c:PutLE24  | 
116  |  |  | 
117  | 0  | static WEBP_INLINE void PutLE32(uint8_t* const data, uint32_t val) { | 
118  | 0  |   PutLE16(data, (int)(val & 0xffff));  | 
119  | 0  |   PutLE16(data + 2, (int)(val >> 16));  | 
120  | 0  | } Unexecuted instantiation: webp_dec.c:PutLE32 Unexecuted instantiation: picture_enc.c:PutLE32 Unexecuted instantiation: webp_enc.c:PutLE32 Unexecuted instantiation: rescaler_utils.c:PutLE32 Unexecuted instantiation: utils.c:PutLE32 Unexecuted instantiation: buffer_dec.c:PutLE32 Unexecuted instantiation: frame_dec.c:PutLE32 Unexecuted instantiation: io_dec.c:PutLE32 Unexecuted instantiation: vp8_dec.c:PutLE32 Unexecuted instantiation: vp8l_dec.c:PutLE32 Unexecuted instantiation: cost.c:PutLE32 Unexecuted instantiation: dec.c:PutLE32 Unexecuted instantiation: enc.c:PutLE32 Unexecuted instantiation: lossless.c:PutLE32 Unexecuted instantiation: cost_sse2.c:PutLE32 Unexecuted instantiation: enc_sse2.c:PutLE32 Unexecuted instantiation: enc_sse41.c:PutLE32 Unexecuted instantiation: dec_sse2.c:PutLE32 Unexecuted instantiation: lossless_sse2.c:PutLE32 Unexecuted instantiation: rescaler_sse2.c:PutLE32 Unexecuted instantiation: yuv_sse2.c:PutLE32 Unexecuted instantiation: dec_sse41.c:PutLE32 Unexecuted instantiation: yuv_sse41.c:PutLE32 Unexecuted instantiation: alpha_enc.c:PutLE32 Unexecuted instantiation: analysis_enc.c:PutLE32 Unexecuted instantiation: frame_enc.c:PutLE32 Unexecuted instantiation: iterator_enc.c:PutLE32 Unexecuted instantiation: picture_csp_enc.c:PutLE32 Unexecuted instantiation: picture_tools_enc.c:PutLE32 Unexecuted instantiation: quant_enc.c:PutLE32 Unexecuted instantiation: syntax_enc.c:PutLE32 Unexecuted instantiation: token_enc.c:PutLE32 Unexecuted instantiation: tree_enc.c:PutLE32 Unexecuted instantiation: vp8l_enc.c:PutLE32 Unexecuted instantiation: bit_reader_utils.c:PutLE32 Unexecuted instantiation: bit_writer_utils.c:PutLE32 Unexecuted instantiation: color_cache_utils.c:PutLE32 Unexecuted instantiation: huffman_encode_utils.c:PutLE32 Unexecuted instantiation: huffman_utils.c:PutLE32 Unexecuted instantiation: palette.c:PutLE32 Unexecuted instantiation: thread_utils.c:PutLE32 Unexecuted instantiation: alpha_dec.c:PutLE32 Unexecuted instantiation: tree_dec.c:PutLE32 Unexecuted instantiation: lossless_enc.c:PutLE32 Unexecuted instantiation: lossless_enc_sse2.c:PutLE32 Unexecuted instantiation: backward_references_enc.c:PutLE32 Unexecuted instantiation: cost_enc.c:PutLE32 Unexecuted instantiation: filter_enc.c:PutLE32 Unexecuted instantiation: histogram_enc.c:PutLE32 Unexecuted instantiation: near_lossless_enc.c:PutLE32 Unexecuted instantiation: picture_rescale_enc.c:PutLE32 Unexecuted instantiation: predictor_enc.c:PutLE32 Unexecuted instantiation: quant_levels_dec_utils.c:PutLE32 Unexecuted instantiation: backward_references_cost_enc.c:PutLE32  | 
121  |  |  | 
122  |  | // use GNU builtins where available.  | 
123  |  | #if defined(__GNUC__) && \  | 
124  |  |     ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ >= 4)  | 
125  |  | // Returns (int)floor(log2(n)). n must be > 0.  | 
126  | 0  | static WEBP_INLINE int BitsLog2Floor(uint32_t n) { | 
127  | 0  |   return 31 ^ __builtin_clz(n);  | 
128  | 0  | } Unexecuted instantiation: webp_dec.c:BitsLog2Floor Unexecuted instantiation: picture_enc.c:BitsLog2Floor Unexecuted instantiation: webp_enc.c:BitsLog2Floor Unexecuted instantiation: rescaler_utils.c:BitsLog2Floor Unexecuted instantiation: utils.c:BitsLog2Floor Unexecuted instantiation: buffer_dec.c:BitsLog2Floor Unexecuted instantiation: frame_dec.c:BitsLog2Floor Unexecuted instantiation: io_dec.c:BitsLog2Floor Unexecuted instantiation: vp8_dec.c:BitsLog2Floor Unexecuted instantiation: vp8l_dec.c:BitsLog2Floor Unexecuted instantiation: cost.c:BitsLog2Floor Unexecuted instantiation: dec.c:BitsLog2Floor Unexecuted instantiation: enc.c:BitsLog2Floor Unexecuted instantiation: lossless.c:BitsLog2Floor Unexecuted instantiation: cost_sse2.c:BitsLog2Floor Unexecuted instantiation: enc_sse2.c:BitsLog2Floor Unexecuted instantiation: enc_sse41.c:BitsLog2Floor Unexecuted instantiation: dec_sse2.c:BitsLog2Floor Unexecuted instantiation: lossless_sse2.c:BitsLog2Floor Unexecuted instantiation: rescaler_sse2.c:BitsLog2Floor Unexecuted instantiation: yuv_sse2.c:BitsLog2Floor Unexecuted instantiation: dec_sse41.c:BitsLog2Floor Unexecuted instantiation: yuv_sse41.c:BitsLog2Floor Unexecuted instantiation: alpha_enc.c:BitsLog2Floor Unexecuted instantiation: analysis_enc.c:BitsLog2Floor Unexecuted instantiation: frame_enc.c:BitsLog2Floor Unexecuted instantiation: iterator_enc.c:BitsLog2Floor Unexecuted instantiation: picture_csp_enc.c:BitsLog2Floor Unexecuted instantiation: picture_tools_enc.c:BitsLog2Floor Unexecuted instantiation: quant_enc.c:BitsLog2Floor Unexecuted instantiation: syntax_enc.c:BitsLog2Floor Unexecuted instantiation: token_enc.c:BitsLog2Floor Unexecuted instantiation: tree_enc.c:BitsLog2Floor Unexecuted instantiation: vp8l_enc.c:BitsLog2Floor Unexecuted instantiation: bit_reader_utils.c:BitsLog2Floor Unexecuted instantiation: bit_writer_utils.c:BitsLog2Floor Unexecuted instantiation: color_cache_utils.c:BitsLog2Floor Unexecuted instantiation: huffman_encode_utils.c:BitsLog2Floor Unexecuted instantiation: huffman_utils.c:BitsLog2Floor Unexecuted instantiation: palette.c:BitsLog2Floor Unexecuted instantiation: thread_utils.c:BitsLog2Floor Unexecuted instantiation: alpha_dec.c:BitsLog2Floor Unexecuted instantiation: tree_dec.c:BitsLog2Floor Unexecuted instantiation: lossless_enc.c:BitsLog2Floor Unexecuted instantiation: lossless_enc_sse2.c:BitsLog2Floor Unexecuted instantiation: backward_references_enc.c:BitsLog2Floor Unexecuted instantiation: cost_enc.c:BitsLog2Floor Unexecuted instantiation: filter_enc.c:BitsLog2Floor Unexecuted instantiation: histogram_enc.c:BitsLog2Floor Unexecuted instantiation: near_lossless_enc.c:BitsLog2Floor Unexecuted instantiation: picture_rescale_enc.c:BitsLog2Floor Unexecuted instantiation: predictor_enc.c:BitsLog2Floor Unexecuted instantiation: quant_levels_dec_utils.c:BitsLog2Floor Unexecuted instantiation: backward_references_cost_enc.c:BitsLog2Floor  | 
129  |  | // counts the number of trailing zero  | 
130  | 0  | static WEBP_INLINE int BitsCtz(uint32_t n) { return __builtin_ctz(n); }Unexecuted instantiation: webp_dec.c:BitsCtz Unexecuted instantiation: picture_enc.c:BitsCtz Unexecuted instantiation: webp_enc.c:BitsCtz Unexecuted instantiation: rescaler_utils.c:BitsCtz Unexecuted instantiation: utils.c:BitsCtz Unexecuted instantiation: buffer_dec.c:BitsCtz Unexecuted instantiation: frame_dec.c:BitsCtz Unexecuted instantiation: io_dec.c:BitsCtz Unexecuted instantiation: vp8_dec.c:BitsCtz Unexecuted instantiation: vp8l_dec.c:BitsCtz Unexecuted instantiation: cost.c:BitsCtz Unexecuted instantiation: dec.c:BitsCtz Unexecuted instantiation: enc.c:BitsCtz Unexecuted instantiation: lossless.c:BitsCtz Unexecuted instantiation: cost_sse2.c:BitsCtz Unexecuted instantiation: enc_sse2.c:BitsCtz Unexecuted instantiation: enc_sse41.c:BitsCtz Unexecuted instantiation: dec_sse2.c:BitsCtz Unexecuted instantiation: lossless_sse2.c:BitsCtz Unexecuted instantiation: rescaler_sse2.c:BitsCtz Unexecuted instantiation: yuv_sse2.c:BitsCtz Unexecuted instantiation: dec_sse41.c:BitsCtz Unexecuted instantiation: yuv_sse41.c:BitsCtz Unexecuted instantiation: alpha_enc.c:BitsCtz Unexecuted instantiation: analysis_enc.c:BitsCtz Unexecuted instantiation: frame_enc.c:BitsCtz Unexecuted instantiation: iterator_enc.c:BitsCtz Unexecuted instantiation: picture_csp_enc.c:BitsCtz Unexecuted instantiation: picture_tools_enc.c:BitsCtz Unexecuted instantiation: quant_enc.c:BitsCtz Unexecuted instantiation: syntax_enc.c:BitsCtz Unexecuted instantiation: token_enc.c:BitsCtz Unexecuted instantiation: tree_enc.c:BitsCtz Unexecuted instantiation: vp8l_enc.c:BitsCtz Unexecuted instantiation: bit_reader_utils.c:BitsCtz Unexecuted instantiation: bit_writer_utils.c:BitsCtz Unexecuted instantiation: color_cache_utils.c:BitsCtz Unexecuted instantiation: huffman_encode_utils.c:BitsCtz Unexecuted instantiation: huffman_utils.c:BitsCtz Unexecuted instantiation: palette.c:BitsCtz Unexecuted instantiation: thread_utils.c:BitsCtz Unexecuted instantiation: alpha_dec.c:BitsCtz Unexecuted instantiation: tree_dec.c:BitsCtz Unexecuted instantiation: lossless_enc.c:BitsCtz Unexecuted instantiation: lossless_enc_sse2.c:BitsCtz Unexecuted instantiation: backward_references_enc.c:BitsCtz Unexecuted instantiation: cost_enc.c:BitsCtz Unexecuted instantiation: filter_enc.c:BitsCtz Unexecuted instantiation: histogram_enc.c:BitsCtz Unexecuted instantiation: near_lossless_enc.c:BitsCtz Unexecuted instantiation: picture_rescale_enc.c:BitsCtz Unexecuted instantiation: predictor_enc.c:BitsCtz Unexecuted instantiation: quant_levels_dec_utils.c:BitsCtz Unexecuted instantiation: backward_references_cost_enc.c:BitsCtz  | 
131  |  | #elif defined(_MSC_VER) && _MSC_VER > 1310 && \  | 
132  |  |       (defined(_M_X64) || defined(_M_IX86))  | 
133  |  | #include <intrin.h>  | 
134  |  | #pragma intrinsic(_BitScanReverse)  | 
135  |  | #pragma intrinsic(_BitScanForward)  | 
136  |  |  | 
137  |  | static WEBP_INLINE int BitsLog2Floor(uint32_t n) { | 
138  |  |   unsigned long first_set_bit;  // NOLINT (runtime/int)  | 
139  |  |   _BitScanReverse(&first_set_bit, n);  | 
140  |  |   return first_set_bit;  | 
141  |  | }  | 
142  |  | static WEBP_INLINE int BitsCtz(uint32_t n) { | 
143  |  |   unsigned long first_set_bit;  // NOLINT (runtime/int)  | 
144  |  |   _BitScanForward(&first_set_bit, n);  | 
145  |  |   return first_set_bit;  | 
146  |  | }  | 
147  |  | #else   // default: use the (slow) C-version.  | 
148  |  | #define WEBP_HAVE_SLOW_CLZ_CTZ   // signal that the Clz/Ctz function are slow  | 
149  |  | // Returns 31 ^ clz(n) = log2(n). This is the default C-implementation, either  | 
150  |  | // based on table or not. Can be used as fallback if clz() is not available.  | 
151  |  | #define WEBP_NEED_LOG_TABLE_8BIT  | 
152  |  | extern const uint8_t WebPLogTable8bit[256];  | 
153  |  | static WEBP_INLINE int WebPLog2FloorC(uint32_t n) { | 
154  |  |   int log_value = 0;  | 
155  |  |   while (n >= 256) { | 
156  |  |     log_value += 8;  | 
157  |  |     n >>= 8;  | 
158  |  |   }  | 
159  |  |   return log_value + WebPLogTable8bit[n];  | 
160  |  | }  | 
161  |  |  | 
162  |  | static WEBP_INLINE int BitsLog2Floor(uint32_t n) { return WebPLog2FloorC(n); } | 
163  |  |  | 
164  |  | static WEBP_INLINE int BitsCtz(uint32_t n) { | 
165  |  |   int i;  | 
166  |  |   for (i = 0; i < 32; ++i, n >>= 1) { | 
167  |  |     if (n & 1) return i;  | 
168  |  |   }  | 
169  |  |   return 32;  | 
170  |  | }  | 
171  |  |  | 
172  |  | #endif  | 
173  |  |  | 
174  |  | //------------------------------------------------------------------------------  | 
175  |  | // Pixel copying.  | 
176  |  |  | 
177  |  | struct WebPPicture;  | 
178  |  |  | 
179  |  | // Copy width x height pixels from 'src' to 'dst' honoring the strides.  | 
180  |  | WEBP_EXTERN void WebPCopyPlane(const uint8_t* src, int src_stride,  | 
181  |  |                                uint8_t* dst, int dst_stride,  | 
182  |  |                                int width, int height);  | 
183  |  |  | 
184  |  | // Copy ARGB pixels from 'src' to 'dst' honoring strides. 'src' and 'dst' are  | 
185  |  | // assumed to be already allocated and using ARGB data.  | 
186  |  | WEBP_EXTERN void WebPCopyPixels(const struct WebPPicture* const src,  | 
187  |  |                                 struct WebPPicture* const dst);  | 
188  |  |  | 
189  |  | //------------------------------------------------------------------------------  | 
190  |  | // Unique colors.  | 
191  |  |  | 
192  |  | // Returns count of unique colors in 'pic', assuming pic->use_argb is true.  | 
193  |  | // If the unique color count is more than MAX_PALETTE_SIZE, returns  | 
194  |  | // MAX_PALETTE_SIZE+1.  | 
195  |  | // If 'palette' is not NULL and number of unique colors is less than or equal to  | 
196  |  | // MAX_PALETTE_SIZE, also outputs the actual unique colors into 'palette'.  | 
197  |  | // Note: 'palette' is assumed to be an array already allocated with at least  | 
198  |  | // MAX_PALETTE_SIZE elements.  | 
199  |  | // TODO(vrabaud) remove whenever we can break the ABI.  | 
200  |  | WEBP_EXTERN int WebPGetColorPalette(const struct WebPPicture* const pic,  | 
201  |  |                                     uint32_t* const palette);  | 
202  |  |  | 
203  |  | //------------------------------------------------------------------------------  | 
204  |  |  | 
205  |  | #ifdef __cplusplus  | 
206  |  | }    // extern "C"  | 
207  |  | #endif  | 
208  |  |  | 
209  |  | #endif  // WEBP_UTILS_UTILS_H_  |