/src/xz/src/liblzma/common/vli_size.c
Line | Count | Source (jump to first uncovered line) |
1 | | /////////////////////////////////////////////////////////////////////////////// |
2 | | // |
3 | | /// \file vli_size.c |
4 | | /// \brief Calculates the encoded size of a variable-length integer |
5 | | // |
6 | | // Author: Lasse Collin |
7 | | // |
8 | | // This file has been put into the public domain. |
9 | | // You can do whatever you want with this file. |
10 | | // |
11 | | /////////////////////////////////////////////////////////////////////////////// |
12 | | |
13 | | #include "common.h" |
14 | | |
15 | | |
16 | | extern LZMA_API(uint32_t) |
17 | | lzma_vli_size(lzma_vli vli) |
18 | 1.18M | { |
19 | 1.18M | if (vli > LZMA_VLI_MAX) |
20 | 0 | return 0; |
21 | | |
22 | 1.18M | uint32_t i = 0; |
23 | 1.87M | do { |
24 | 1.87M | vli >>= 7; |
25 | 1.87M | ++i; |
26 | 1.87M | } while (vli != 0); |
27 | | |
28 | 1.18M | assert(i <= LZMA_VLI_BYTES_MAX); |
29 | 1.18M | return i; |
30 | 1.18M | } |