Coverage Report

Created: 2025-06-24 08:09

/src/fluent-bit/lib/librdkafka-2.8.0/src/rdvarint.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * librdkafka - The Apache Kafka C/C++ library
3
 *
4
 * Copyright (c) 2016-2022, Magnus Edenhill
5
 * All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions are met:
9
 *
10
 * 1. Redistributions of source code must retain the above copyright notice,
11
 *    this list of conditions and the following disclaimer.
12
 * 2. Redistributions in binary form must reproduce the above copyright notice,
13
 *    this list of conditions and the following disclaimer in the documentation
14
 *    and/or other materials provided with the distribution.
15
 *
16
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
 * POSSIBILITY OF SUCH DAMAGE.
27
 */
28
29
30
#ifndef _RDVARINT_H
31
#define _RDVARINT_H
32
33
#include "rd.h"
34
#include "rdbuf.h"
35
36
/**
37
 * @name signed varint zig-zag encoder/decoder
38
 * @{
39
 *
40
 */
41
42
/**
43
 * @brief unsigned-varint encodes unsigned integer \p num into buffer
44
 *        at \p dst of size \p dstsize.
45
 * @returns the number of bytes written to \p dst, or 0 if not enough space.
46
 */
47
48
static RD_INLINE RD_UNUSED size_t rd_uvarint_enc_u64(char *dst,
49
                                                     size_t dstsize,
50
0
                                                     uint64_t num) {
51
0
        size_t of = 0;
52
53
0
        do {
54
0
                if (unlikely(of >= dstsize))
55
0
                        return 0; /* Not enough space */
56
57
0
                dst[of++] = (num & 0x7f) | (num > 0x7f ? 0x80 : 0);
58
0
                num >>= 7;
59
0
        } while (num);
60
61
0
        return of;
62
0
}
Unexecuted instantiation: rdkafka.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_assignor.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_broker.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_buf.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_cgrp.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_conf.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_feature.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_metadata.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_metadata_cache.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_msg.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_offset.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_op.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_partition.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_pattern.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_queue.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_range_assignor.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_request.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_roundrobin_assignor.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_sasl.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_sasl_plain.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_sticky_assignor.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_subscription.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_assignment.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_timer.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_topic.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_transport.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_interceptor.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_header.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_admin.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_aux.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_background.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_idempotence.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_txnmgr.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_cert.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_coord.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_mock.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_mock_handlers.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_mock_cgrp.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_error.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_fetcher.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_telemetry.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_telemetry_decode.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_telemetry_encode.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdunittest.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdvarint.c:rd_uvarint_enc_u64
Unexecuted instantiation: snappy.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_ssl.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_plugin.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdavl.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_event.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_lz4.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_msgset_reader.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdkafka_msgset_writer.c:rd_uvarint_enc_u64
Unexecuted instantiation: rdlog.c:rd_uvarint_enc_u64
63
64
/**
65
 * @brief encodes a signed integer using zig-zag encoding.
66
 * @sa rd_uvarint_enc_u64
67
 */
68
static RD_INLINE RD_UNUSED size_t rd_uvarint_enc_i64(char *dst,
69
                                                     size_t dstsize,
70
0
                                                     int64_t num) {
71
0
        return rd_uvarint_enc_u64(dst, dstsize, (num << 1) ^ (num >> 63));
72
0
}
Unexecuted instantiation: rdkafka.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_assignor.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_broker.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_buf.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_cgrp.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_conf.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_feature.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_metadata.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_metadata_cache.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_msg.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_offset.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_op.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_partition.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_pattern.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_queue.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_range_assignor.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_request.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_roundrobin_assignor.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_sasl.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_sasl_plain.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_sticky_assignor.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_subscription.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_assignment.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_timer.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_topic.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_transport.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_interceptor.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_header.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_admin.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_aux.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_background.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_idempotence.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_txnmgr.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_cert.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_coord.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_mock.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_mock_handlers.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_mock_cgrp.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_error.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_fetcher.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_telemetry.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_telemetry_decode.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_telemetry_encode.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdunittest.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdvarint.c:rd_uvarint_enc_i64
Unexecuted instantiation: snappy.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_ssl.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_plugin.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdavl.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_event.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_lz4.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_msgset_reader.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdkafka_msgset_writer.c:rd_uvarint_enc_i64
Unexecuted instantiation: rdlog.c:rd_uvarint_enc_i64
73
74
75
static RD_INLINE RD_UNUSED size_t rd_uvarint_enc_i32(char *dst,
76
                                                     size_t dstsize,
77
0
                                                     int32_t num) {
78
0
        return rd_uvarint_enc_i64(dst, dstsize, num);
79
0
}
Unexecuted instantiation: rdkafka.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_assignor.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_broker.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_buf.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_cgrp.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_conf.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_feature.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_metadata.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_metadata_cache.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_msg.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_offset.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_op.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_partition.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_pattern.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_queue.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_range_assignor.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_request.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_roundrobin_assignor.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_sasl.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_sasl_plain.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_sticky_assignor.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_subscription.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_assignment.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_timer.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_topic.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_transport.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_interceptor.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_header.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_admin.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_aux.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_background.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_idempotence.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_txnmgr.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_cert.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_coord.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_mock.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_mock_handlers.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_mock_cgrp.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_error.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_fetcher.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_telemetry.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_telemetry_decode.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_telemetry_encode.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdunittest.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdvarint.c:rd_uvarint_enc_i32
Unexecuted instantiation: snappy.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_ssl.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_plugin.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdavl.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_event.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_lz4.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_msgset_reader.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdkafka_msgset_writer.c:rd_uvarint_enc_i32
Unexecuted instantiation: rdlog.c:rd_uvarint_enc_i32
80
81
82
83
/**
84
 * @brief Use on return value from rd_uvarint_dec() to check if
85
 *        decoded varint fit the size_t.
86
 *
87
 * @returns 1 on overflow, else 0.
88
 */
89
#define RD_UVARINT_OVERFLOW(DEC_RETVAL) (DEC_RETVAL > SIZE_MAX)
90
91
/**
92
 * @returns 1 if there were not enough bytes to decode the varint, else 0.
93
 */
94
#define RD_UVARINT_UNDERFLOW(DEC_RETVAL) (DEC_RETVAL == 0)
95
96
97
/**
98
 * @param DEC_RETVAL the return value from \c rd_uvarint_dec()
99
 * @returns 1 if varint decoding failed, else 0.
100
 * @warning \p DEC_RETVAL will be evaluated twice.
101
 */
102
#define RD_UVARINT_DEC_FAILED(DEC_RETVAL)                                      \
103
        (RD_UVARINT_UNDERFLOW(DEC_RETVAL) || RD_UVARINT_OVERFLOW(DEC_RETVAL))
104
105
106
/**
107
 * @brief Decodes the unsigned-varint in buffer \p src of size \p srcsize
108
 *        and stores the decoded unsigned integer in \p nump.
109
 *
110
 * @remark Use RD_UVARINT_OVERFLOW(returnvalue) to check if the varint
111
 *         could not fit \p nump, and RD_UVARINT_UNDERFLOW(returnvalue) to
112
 *         check if there were not enough bytes available in \p src to
113
 *         decode the full varint.
114
 *
115
 * @returns the number of bytes read from \p src.
116
 */
117
static RD_INLINE RD_UNUSED size_t rd_uvarint_dec(const char *src,
118
                                                 size_t srcsize,
119
0
                                                 uint64_t *nump) {
120
0
        size_t of    = 0;
121
0
        uint64_t num = 0;
122
0
        int shift    = 0;
123
124
0
        do {
125
0
                if (unlikely(srcsize-- == 0))
126
0
                        return 0; /* Underflow */
127
0
                num |= (uint64_t)(src[(int)of] & 0x7f) << shift;
128
0
                shift += 7;
129
0
        } while (src[(int)of++] & 0x80);
130
131
0
        *nump = num;
132
0
        return of;
133
0
}
Unexecuted instantiation: rdkafka.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_assignor.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_broker.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_buf.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_cgrp.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_conf.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_feature.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_metadata.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_metadata_cache.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_msg.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_offset.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_op.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_partition.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_pattern.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_queue.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_range_assignor.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_request.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_roundrobin_assignor.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_sasl.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_sasl_plain.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_sticky_assignor.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_subscription.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_assignment.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_timer.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_topic.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_transport.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_interceptor.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_header.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_admin.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_aux.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_background.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_idempotence.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_txnmgr.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_cert.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_coord.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_mock.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_mock_handlers.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_mock_cgrp.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_error.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_fetcher.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_telemetry.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_telemetry_decode.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_telemetry_encode.c:rd_uvarint_dec
Unexecuted instantiation: rdunittest.c:rd_uvarint_dec
Unexecuted instantiation: rdvarint.c:rd_uvarint_dec
Unexecuted instantiation: snappy.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_ssl.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_plugin.c:rd_uvarint_dec
Unexecuted instantiation: rdavl.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_event.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_lz4.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_msgset_reader.c:rd_uvarint_dec
Unexecuted instantiation: rdkafka_msgset_writer.c:rd_uvarint_dec
Unexecuted instantiation: rdlog.c:rd_uvarint_dec
134
135
static RD_INLINE RD_UNUSED size_t rd_varint_dec_i64(const char *src,
136
                                                    size_t srcsize,
137
0
                                                    int64_t *nump) {
138
0
        uint64_t n;
139
0
        size_t r;
140
141
0
        r = rd_uvarint_dec(src, srcsize, &n);
142
0
        if (likely(!RD_UVARINT_DEC_FAILED(r)))
143
0
                *nump = (int64_t)(n >> 1) ^ -(int64_t)(n & 1);
144
145
0
        return r;
146
0
}
Unexecuted instantiation: rdkafka.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_assignor.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_broker.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_buf.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_cgrp.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_conf.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_feature.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_metadata.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_metadata_cache.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_msg.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_offset.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_op.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_partition.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_pattern.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_queue.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_range_assignor.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_request.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_roundrobin_assignor.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_sasl.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_sasl_plain.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_sticky_assignor.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_subscription.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_assignment.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_timer.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_topic.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_transport.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_interceptor.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_header.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_admin.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_aux.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_background.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_idempotence.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_txnmgr.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_cert.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_coord.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_mock.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_mock_handlers.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_mock_cgrp.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_error.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_fetcher.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_telemetry.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_telemetry_decode.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_telemetry_encode.c:rd_varint_dec_i64
Unexecuted instantiation: rdunittest.c:rd_varint_dec_i64
Unexecuted instantiation: rdvarint.c:rd_varint_dec_i64
Unexecuted instantiation: snappy.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_ssl.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_plugin.c:rd_varint_dec_i64
Unexecuted instantiation: rdavl.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_event.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_lz4.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_msgset_reader.c:rd_varint_dec_i64
Unexecuted instantiation: rdkafka_msgset_writer.c:rd_varint_dec_i64
Unexecuted instantiation: rdlog.c:rd_varint_dec_i64
147
148
149
/**
150
 * @returns the maximum encoded size for a type
151
 */
152
0
#define RD_UVARINT_ENC_SIZEOF(TYPE) (sizeof(TYPE) + 1 + (sizeof(TYPE) / 7))
153
154
/**
155
 * @returns the encoding size of the value 0
156
 */
157
0
#define RD_UVARINT_ENC_SIZE_0() ((size_t)1)
158
159
160
int unittest_rdvarint(void);
161
162
/**@}*/
163
164
165
#endif /* _RDVARINT_H */