Coverage Report

Created: 2025-07-23 07:06

/src/opencv/3rdparty/openjpeg/openjp2/opj_intmath.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * The copyright in this software is being made available under the 2-clauses
3
 * BSD License, included below. This software may be subject to other third
4
 * party and contributor rights, including patent rights, and no such rights
5
 * are granted under this license.
6
 *
7
 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
8
 * Copyright (c) 2002-2014, Professor Benoit Macq
9
 * Copyright (c) 2001-2003, David Janssens
10
 * Copyright (c) 2002-2003, Yannick Verschueren
11
 * Copyright (c) 2003-2007, Francois-Olivier Devaux
12
 * Copyright (c) 2003-2014, Antonin Descampe
13
 * Copyright (c) 2005, Herve Drolon, FreeImage Team
14
 * All rights reserved.
15
 *
16
 * Redistribution and use in source and binary forms, with or without
17
 * modification, are permitted provided that the following conditions
18
 * are met:
19
 * 1. Redistributions of source code must retain the above copyright
20
 *    notice, this list of conditions and the following disclaimer.
21
 * 2. Redistributions in binary form must reproduce the above copyright
22
 *    notice, this list of conditions and the following disclaimer in the
23
 *    documentation and/or other materials provided with the distribution.
24
 *
25
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
26
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
 * POSSIBILITY OF SUCH DAMAGE.
36
 */
37
#ifndef OPJ_INTMATH_H
38
#define OPJ_INTMATH_H
39
/**
40
@file opj_intmath.h
41
@brief Implementation of operations on integers (INT)
42
43
The functions in OPJ_INTMATH.H have for goal to realize operations on integers.
44
*/
45
46
/** @defgroup OPJ_INTMATH OPJ_INTMATH - Implementation of operations on integers */
47
/*@{*/
48
49
/** @name Exported functions (see also openjpeg.h) */
50
/*@{*/
51
/* ----------------------------------------------------------------------- */
52
/**
53
Get the minimum of two integers
54
@return Returns a if a < b else b
55
*/
56
static INLINE OPJ_INT32 opj_int_min(OPJ_INT32 a, OPJ_INT32 b)
57
4.92M
{
58
4.92M
    return a < b ? a : b;
59
4.92M
}
Unexecuted instantiation: cio.c:opj_int_min
Unexecuted instantiation: event.c:opj_int_min
Unexecuted instantiation: image.c:opj_int_min
Unexecuted instantiation: openjpeg.c:opj_int_min
Unexecuted instantiation: opj_malloc.c:opj_int_min
Unexecuted instantiation: j2k.c:opj_int_min
Unexecuted instantiation: jp2.c:opj_int_min
Unexecuted instantiation: mct.c:opj_int_min
Unexecuted instantiation: pi.c:opj_int_min
tcd.c:opj_int_min
Line
Count
Source
57
4.12M
{
58
4.12M
    return a < b ? a : b;
59
4.12M
}
Unexecuted instantiation: tgt.c:opj_int_min
Unexecuted instantiation: function_list.c:opj_int_min
Unexecuted instantiation: thread.c:opj_int_min
Unexecuted instantiation: bio.c:opj_int_min
dwt.c:opj_int_min
Line
Count
Source
57
156k
{
58
156k
    return a < b ? a : b;
59
156k
}
Unexecuted instantiation: invert.c:opj_int_min
Unexecuted instantiation: t1.c:opj_int_min
t2.c:opj_int_min
Line
Count
Source
57
645k
{
58
645k
    return a < b ? a : b;
59
645k
}
Unexecuted instantiation: sparse_array.c:opj_int_min
Unexecuted instantiation: ht_dec.c:opj_int_min
Unexecuted instantiation: mqc.c:opj_int_min
60
61
/**
62
Get the minimum of two integers
63
@return Returns a if a < b else b
64
*/
65
static INLINE OPJ_UINT32 opj_uint_min(OPJ_UINT32 a, OPJ_UINT32 b)
66
11.8M
{
67
11.8M
    return a < b ? a : b;
68
11.8M
}
Unexecuted instantiation: cio.c:opj_uint_min
Unexecuted instantiation: event.c:opj_uint_min
image.c:opj_uint_min
Line
Count
Source
66
2.30k
{
67
2.30k
    return a < b ? a : b;
68
2.30k
}
Unexecuted instantiation: openjpeg.c:opj_uint_min
Unexecuted instantiation: opj_malloc.c:opj_uint_min
j2k.c:opj_uint_min
Line
Count
Source
66
1.12k
{
67
1.12k
    return a < b ? a : b;
68
1.12k
}
Unexecuted instantiation: jp2.c:opj_uint_min
Unexecuted instantiation: mct.c:opj_uint_min
pi.c:opj_uint_min
Line
Count
Source
66
41.0k
{
67
41.0k
    return a < b ? a : b;
68
41.0k
}
tcd.c:opj_uint_min
Line
Count
Source
66
11.6M
{
67
11.6M
    return a < b ? a : b;
68
11.6M
}
Unexecuted instantiation: tgt.c:opj_uint_min
Unexecuted instantiation: function_list.c:opj_uint_min
Unexecuted instantiation: thread.c:opj_uint_min
Unexecuted instantiation: bio.c:opj_uint_min
dwt.c:opj_uint_min
Line
Count
Source
66
156k
{
67
156k
    return a < b ? a : b;
68
156k
}
Unexecuted instantiation: invert.c:opj_uint_min
Unexecuted instantiation: t1.c:opj_uint_min
Unexecuted instantiation: t2.c:opj_uint_min
Unexecuted instantiation: sparse_array.c:opj_uint_min
Unexecuted instantiation: ht_dec.c:opj_uint_min
Unexecuted instantiation: mqc.c:opj_uint_min
69
70
/**
71
Get the maximum of two integers
72
@return Returns a if a > b else b
73
*/
74
static INLINE OPJ_INT32 opj_int_max(OPJ_INT32 a, OPJ_INT32 b)
75
4.12M
{
76
4.12M
    return (a > b) ? a : b;
77
4.12M
}
Unexecuted instantiation: cio.c:opj_int_max
Unexecuted instantiation: event.c:opj_int_max
Unexecuted instantiation: image.c:opj_int_max
Unexecuted instantiation: openjpeg.c:opj_int_max
Unexecuted instantiation: opj_malloc.c:opj_int_max
Unexecuted instantiation: j2k.c:opj_int_max
Unexecuted instantiation: jp2.c:opj_int_max
Unexecuted instantiation: mct.c:opj_int_max
Unexecuted instantiation: pi.c:opj_int_max
tcd.c:opj_int_max
Line
Count
Source
75
4.12M
{
76
4.12M
    return (a > b) ? a : b;
77
4.12M
}
Unexecuted instantiation: tgt.c:opj_int_max
Unexecuted instantiation: function_list.c:opj_int_max
Unexecuted instantiation: thread.c:opj_int_max
Unexecuted instantiation: bio.c:opj_int_max
Unexecuted instantiation: dwt.c:opj_int_max
Unexecuted instantiation: invert.c:opj_int_max
Unexecuted instantiation: t1.c:opj_int_max
Unexecuted instantiation: t2.c:opj_int_max
Unexecuted instantiation: sparse_array.c:opj_int_max
Unexecuted instantiation: ht_dec.c:opj_int_max
Unexecuted instantiation: mqc.c:opj_int_max
78
79
/**
80
Get the maximum of two integers
81
@return Returns a if a > b else b
82
*/
83
static INLINE OPJ_UINT32 opj_uint_max(OPJ_UINT32  a, OPJ_UINT32  b)
84
15.3M
{
85
15.3M
    return (a > b) ? a : b;
86
15.3M
}
Unexecuted instantiation: cio.c:opj_uint_max
Unexecuted instantiation: event.c:opj_uint_max
image.c:opj_uint_max
Line
Count
Source
84
2.30k
{
85
2.30k
    return (a > b) ? a : b;
86
2.30k
}
Unexecuted instantiation: openjpeg.c:opj_uint_max
Unexecuted instantiation: opj_malloc.c:opj_uint_max
Unexecuted instantiation: j2k.c:opj_uint_max
Unexecuted instantiation: jp2.c:opj_uint_max
Unexecuted instantiation: mct.c:opj_uint_max
pi.c:opj_uint_max
Line
Count
Source
84
6.16k
{
85
6.16k
    return (a > b) ? a : b;
86
6.16k
}
tcd.c:opj_uint_max
Line
Count
Source
84
11.6M
{
85
11.6M
    return (a > b) ? a : b;
86
11.6M
}
Unexecuted instantiation: tgt.c:opj_uint_max
Unexecuted instantiation: function_list.c:opj_uint_max
Unexecuted instantiation: thread.c:opj_uint_max
Unexecuted instantiation: bio.c:opj_uint_max
Unexecuted instantiation: dwt.c:opj_uint_max
Unexecuted instantiation: invert.c:opj_uint_max
Unexecuted instantiation: t1.c:opj_uint_max
t2.c:opj_uint_max
Line
Count
Source
84
3.75M
{
85
3.75M
    return (a > b) ? a : b;
86
3.75M
}
Unexecuted instantiation: sparse_array.c:opj_uint_max
Unexecuted instantiation: ht_dec.c:opj_uint_max
Unexecuted instantiation: mqc.c:opj_uint_max
87
88
/**
89
 Get the saturated sum of two unsigned integers
90
 @return Returns saturated sum of a+b
91
 */
92
static INLINE OPJ_UINT32 opj_uint_adds(OPJ_UINT32 a, OPJ_UINT32 b)
93
11.6M
{
94
11.6M
    OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b;
95
11.6M
    return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum;
96
11.6M
}
Unexecuted instantiation: cio.c:opj_uint_adds
Unexecuted instantiation: event.c:opj_uint_adds
image.c:opj_uint_adds
Line
Count
Source
93
2.30k
{
94
2.30k
    OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b;
95
2.30k
    return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum;
96
2.30k
}
Unexecuted instantiation: openjpeg.c:opj_uint_adds
Unexecuted instantiation: opj_malloc.c:opj_uint_adds
j2k.c:opj_uint_adds
Line
Count
Source
93
2.31k
{
94
2.31k
    OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b;
95
2.31k
    return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum;
96
2.31k
}
Unexecuted instantiation: jp2.c:opj_uint_adds
Unexecuted instantiation: mct.c:opj_uint_adds
pi.c:opj_uint_adds
Line
Count
Source
93
6.16k
{
94
6.16k
    OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b;
95
6.16k
    return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum;
96
6.16k
}
tcd.c:opj_uint_adds
Line
Count
Source
93
11.5M
{
94
11.5M
    OPJ_UINT64 sum = (OPJ_UINT64)a + (OPJ_UINT64)b;
95
11.5M
    return (OPJ_UINT32)(-(OPJ_INT32)(sum >> 32)) | (OPJ_UINT32)sum;
96
11.5M
}
Unexecuted instantiation: tgt.c:opj_uint_adds
Unexecuted instantiation: function_list.c:opj_uint_adds
Unexecuted instantiation: thread.c:opj_uint_adds
Unexecuted instantiation: bio.c:opj_uint_adds
Unexecuted instantiation: dwt.c:opj_uint_adds
Unexecuted instantiation: invert.c:opj_uint_adds
Unexecuted instantiation: t1.c:opj_uint_adds
Unexecuted instantiation: t2.c:opj_uint_adds
Unexecuted instantiation: sparse_array.c:opj_uint_adds
Unexecuted instantiation: ht_dec.c:opj_uint_adds
Unexecuted instantiation: mqc.c:opj_uint_adds
97
98
/**
99
 Get the saturated difference of two unsigned integers
100
 @return Returns saturated sum of a-b
101
 */
102
static INLINE OPJ_UINT32 opj_uint_subs(OPJ_UINT32 a, OPJ_UINT32 b)
103
0
{
104
0
    return (a >= b) ? a - b : 0;
105
0
}
Unexecuted instantiation: cio.c:opj_uint_subs
Unexecuted instantiation: event.c:opj_uint_subs
Unexecuted instantiation: image.c:opj_uint_subs
Unexecuted instantiation: openjpeg.c:opj_uint_subs
Unexecuted instantiation: opj_malloc.c:opj_uint_subs
Unexecuted instantiation: j2k.c:opj_uint_subs
Unexecuted instantiation: jp2.c:opj_uint_subs
Unexecuted instantiation: mct.c:opj_uint_subs
Unexecuted instantiation: pi.c:opj_uint_subs
Unexecuted instantiation: tcd.c:opj_uint_subs
Unexecuted instantiation: tgt.c:opj_uint_subs
Unexecuted instantiation: function_list.c:opj_uint_subs
Unexecuted instantiation: thread.c:opj_uint_subs
Unexecuted instantiation: bio.c:opj_uint_subs
Unexecuted instantiation: dwt.c:opj_uint_subs
Unexecuted instantiation: invert.c:opj_uint_subs
Unexecuted instantiation: t1.c:opj_uint_subs
Unexecuted instantiation: t2.c:opj_uint_subs
Unexecuted instantiation: sparse_array.c:opj_uint_subs
Unexecuted instantiation: ht_dec.c:opj_uint_subs
Unexecuted instantiation: mqc.c:opj_uint_subs
106
107
/**
108
Clamp an integer inside an interval
109
@return
110
<ul>
111
<li>Returns a if (min < a < max)
112
<li>Returns max if (a > max)
113
<li>Returns min if (a < min)
114
</ul>
115
*/
116
static INLINE OPJ_INT32 opj_int_clamp(OPJ_INT32 a, OPJ_INT32 min,
117
                                      OPJ_INT32 max)
118
4.18G
{
119
4.18G
    if (a < min) {
120
64.8M
        return min;
121
64.8M
    }
122
4.12G
    if (a > max) {
123
63.1M
        return max;
124
63.1M
    }
125
4.06G
    return a;
126
4.12G
}
Unexecuted instantiation: cio.c:opj_int_clamp
Unexecuted instantiation: event.c:opj_int_clamp
Unexecuted instantiation: image.c:opj_int_clamp
Unexecuted instantiation: openjpeg.c:opj_int_clamp
Unexecuted instantiation: opj_malloc.c:opj_int_clamp
Unexecuted instantiation: j2k.c:opj_int_clamp
Unexecuted instantiation: jp2.c:opj_int_clamp
Unexecuted instantiation: mct.c:opj_int_clamp
Unexecuted instantiation: pi.c:opj_int_clamp
tcd.c:opj_int_clamp
Line
Count
Source
118
4.18G
{
119
4.18G
    if (a < min) {
120
64.8M
        return min;
121
64.8M
    }
122
4.12G
    if (a > max) {
123
63.1M
        return max;
124
63.1M
    }
125
4.06G
    return a;
126
4.12G
}
Unexecuted instantiation: tgt.c:opj_int_clamp
Unexecuted instantiation: function_list.c:opj_int_clamp
Unexecuted instantiation: thread.c:opj_int_clamp
Unexecuted instantiation: bio.c:opj_int_clamp
Unexecuted instantiation: dwt.c:opj_int_clamp
Unexecuted instantiation: invert.c:opj_int_clamp
Unexecuted instantiation: t1.c:opj_int_clamp
Unexecuted instantiation: t2.c:opj_int_clamp
Unexecuted instantiation: sparse_array.c:opj_int_clamp
Unexecuted instantiation: ht_dec.c:opj_int_clamp
Unexecuted instantiation: mqc.c:opj_int_clamp
127
128
/**
129
Clamp an integer inside an interval
130
@return
131
<ul>
132
<li>Returns a if (min < a < max)
133
<li>Returns max if (a > max)
134
<li>Returns min if (a < min)
135
</ul>
136
*/
137
static INLINE OPJ_INT64 opj_int64_clamp(OPJ_INT64 a, OPJ_INT64 min,
138
                                        OPJ_INT64 max)
139
88.6M
{
140
88.6M
    if (a < min) {
141
2.90M
        return min;
142
2.90M
    }
143
85.7M
    if (a > max) {
144
309k
        return max;
145
309k
    }
146
85.4M
    return a;
147
85.7M
}
Unexecuted instantiation: cio.c:opj_int64_clamp
Unexecuted instantiation: event.c:opj_int64_clamp
Unexecuted instantiation: image.c:opj_int64_clamp
Unexecuted instantiation: openjpeg.c:opj_int64_clamp
Unexecuted instantiation: opj_malloc.c:opj_int64_clamp
Unexecuted instantiation: j2k.c:opj_int64_clamp
Unexecuted instantiation: jp2.c:opj_int64_clamp
Unexecuted instantiation: mct.c:opj_int64_clamp
Unexecuted instantiation: pi.c:opj_int64_clamp
tcd.c:opj_int64_clamp
Line
Count
Source
139
88.6M
{
140
88.6M
    if (a < min) {
141
2.90M
        return min;
142
2.90M
    }
143
85.7M
    if (a > max) {
144
309k
        return max;
145
309k
    }
146
85.4M
    return a;
147
85.7M
}
Unexecuted instantiation: tgt.c:opj_int64_clamp
Unexecuted instantiation: function_list.c:opj_int64_clamp
Unexecuted instantiation: thread.c:opj_int64_clamp
Unexecuted instantiation: bio.c:opj_int64_clamp
Unexecuted instantiation: dwt.c:opj_int64_clamp
Unexecuted instantiation: invert.c:opj_int64_clamp
Unexecuted instantiation: t1.c:opj_int64_clamp
Unexecuted instantiation: t2.c:opj_int64_clamp
Unexecuted instantiation: sparse_array.c:opj_int64_clamp
Unexecuted instantiation: ht_dec.c:opj_int64_clamp
Unexecuted instantiation: mqc.c:opj_int64_clamp
148
149
/**
150
@return Get absolute value of integer
151
*/
152
static INLINE OPJ_INT32 opj_int_abs(OPJ_INT32 a)
153
0
{
154
0
    return a < 0 ? -a : a;
155
0
}
Unexecuted instantiation: cio.c:opj_int_abs
Unexecuted instantiation: event.c:opj_int_abs
Unexecuted instantiation: image.c:opj_int_abs
Unexecuted instantiation: openjpeg.c:opj_int_abs
Unexecuted instantiation: opj_malloc.c:opj_int_abs
Unexecuted instantiation: j2k.c:opj_int_abs
Unexecuted instantiation: jp2.c:opj_int_abs
Unexecuted instantiation: mct.c:opj_int_abs
Unexecuted instantiation: pi.c:opj_int_abs
Unexecuted instantiation: tcd.c:opj_int_abs
Unexecuted instantiation: tgt.c:opj_int_abs
Unexecuted instantiation: function_list.c:opj_int_abs
Unexecuted instantiation: thread.c:opj_int_abs
Unexecuted instantiation: bio.c:opj_int_abs
Unexecuted instantiation: dwt.c:opj_int_abs
Unexecuted instantiation: invert.c:opj_int_abs
Unexecuted instantiation: t1.c:opj_int_abs
Unexecuted instantiation: t2.c:opj_int_abs
Unexecuted instantiation: sparse_array.c:opj_int_abs
Unexecuted instantiation: ht_dec.c:opj_int_abs
Unexecuted instantiation: mqc.c:opj_int_abs
156
/**
157
Divide an integer and round upwards
158
@return Returns a divided by b
159
*/
160
static INLINE OPJ_INT32 opj_int_ceildiv(OPJ_INT32 a, OPJ_INT32 b)
161
19.6k
{
162
19.6k
    assert(b);
163
19.6k
    return (OPJ_INT32)(((OPJ_INT64)a + b - 1) / b);
164
19.6k
}
Unexecuted instantiation: cio.c:opj_int_ceildiv
Unexecuted instantiation: event.c:opj_int_ceildiv
Unexecuted instantiation: image.c:opj_int_ceildiv
Unexecuted instantiation: openjpeg.c:opj_int_ceildiv
Unexecuted instantiation: opj_malloc.c:opj_int_ceildiv
Unexecuted instantiation: j2k.c:opj_int_ceildiv
Unexecuted instantiation: jp2.c:opj_int_ceildiv
Unexecuted instantiation: mct.c:opj_int_ceildiv
Unexecuted instantiation: pi.c:opj_int_ceildiv
tcd.c:opj_int_ceildiv
Line
Count
Source
161
19.6k
{
162
19.6k
    assert(b);
163
19.6k
    return (OPJ_INT32)(((OPJ_INT64)a + b - 1) / b);
164
19.6k
}
Unexecuted instantiation: tgt.c:opj_int_ceildiv
Unexecuted instantiation: function_list.c:opj_int_ceildiv
Unexecuted instantiation: thread.c:opj_int_ceildiv
Unexecuted instantiation: bio.c:opj_int_ceildiv
Unexecuted instantiation: dwt.c:opj_int_ceildiv
Unexecuted instantiation: invert.c:opj_int_ceildiv
Unexecuted instantiation: t1.c:opj_int_ceildiv
Unexecuted instantiation: t2.c:opj_int_ceildiv
Unexecuted instantiation: sparse_array.c:opj_int_ceildiv
Unexecuted instantiation: ht_dec.c:opj_int_ceildiv
Unexecuted instantiation: mqc.c:opj_int_ceildiv
165
166
/**
167
Divide an integer and round upwards
168
@return Returns a divided by b
169
*/
170
static INLINE OPJ_UINT32  opj_uint_ceildiv(OPJ_UINT32  a, OPJ_UINT32  b)
171
23.2M
{
172
23.2M
    assert(b);
173
23.2M
    return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b);
174
23.2M
}
Unexecuted instantiation: cio.c:opj_uint_ceildiv
Unexecuted instantiation: event.c:opj_uint_ceildiv
image.c:opj_uint_ceildiv
Line
Count
Source
171
7.90k
{
172
7.90k
    assert(b);
173
7.90k
    return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b);
174
7.90k
}
Unexecuted instantiation: openjpeg.c:opj_uint_ceildiv
Unexecuted instantiation: opj_malloc.c:opj_uint_ceildiv
j2k.c:opj_uint_ceildiv
Line
Count
Source
171
2.30k
{
172
2.30k
    assert(b);
173
2.30k
    return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b);
174
2.30k
}
Unexecuted instantiation: jp2.c:opj_uint_ceildiv
Unexecuted instantiation: mct.c:opj_uint_ceildiv
pi.c:opj_uint_ceildiv
Line
Count
Source
171
19.6k
{
172
19.6k
    assert(b);
173
19.6k
    return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b);
174
19.6k
}
tcd.c:opj_uint_ceildiv
Line
Count
Source
171
23.1M
{
172
23.1M
    assert(b);
173
23.1M
    return (OPJ_UINT32)(((OPJ_UINT64)a + b - 1) / b);
174
23.1M
}
Unexecuted instantiation: tgt.c:opj_uint_ceildiv
Unexecuted instantiation: function_list.c:opj_uint_ceildiv
Unexecuted instantiation: thread.c:opj_uint_ceildiv
Unexecuted instantiation: bio.c:opj_uint_ceildiv
Unexecuted instantiation: dwt.c:opj_uint_ceildiv
Unexecuted instantiation: invert.c:opj_uint_ceildiv
Unexecuted instantiation: t1.c:opj_uint_ceildiv
Unexecuted instantiation: t2.c:opj_uint_ceildiv
Unexecuted instantiation: sparse_array.c:opj_uint_ceildiv
Unexecuted instantiation: ht_dec.c:opj_uint_ceildiv
Unexecuted instantiation: mqc.c:opj_uint_ceildiv
175
176
/**
177
Divide an integer and round upwards
178
@return Returns a divided by b
179
*/
180
static INLINE OPJ_UINT32  opj_uint64_ceildiv_res_uint32(OPJ_UINT64 a,
181
        OPJ_UINT64 b)
182
37.6k
{
183
37.6k
    assert(b);
184
37.6k
    return (OPJ_UINT32)((a + b - 1) / b);
185
37.6k
}
Unexecuted instantiation: cio.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: event.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: image.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: openjpeg.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: opj_malloc.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: j2k.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: jp2.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: mct.c:opj_uint64_ceildiv_res_uint32
pi.c:opj_uint64_ceildiv_res_uint32
Line
Count
Source
182
37.6k
{
183
37.6k
    assert(b);
184
37.6k
    return (OPJ_UINT32)((a + b - 1) / b);
185
37.6k
}
Unexecuted instantiation: tcd.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: tgt.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: function_list.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: thread.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: bio.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: dwt.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: invert.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: t1.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: t2.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: sparse_array.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: ht_dec.c:opj_uint64_ceildiv_res_uint32
Unexecuted instantiation: mqc.c:opj_uint64_ceildiv_res_uint32
186
187
/**
188
Divide an integer by a power of 2 and round upwards
189
@return Returns a divided by 2^b
190
*/
191
static INLINE OPJ_INT32 opj_int_ceildivpow2(OPJ_INT32 a, OPJ_INT32 b)
192
516k
{
193
516k
    return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b);
194
516k
}
Unexecuted instantiation: cio.c:opj_int_ceildivpow2
Unexecuted instantiation: event.c:opj_int_ceildivpow2
Unexecuted instantiation: image.c:opj_int_ceildivpow2
Unexecuted instantiation: openjpeg.c:opj_int_ceildivpow2
Unexecuted instantiation: opj_malloc.c:opj_int_ceildivpow2
Unexecuted instantiation: j2k.c:opj_int_ceildivpow2
Unexecuted instantiation: jp2.c:opj_int_ceildivpow2
Unexecuted instantiation: mct.c:opj_int_ceildivpow2
Unexecuted instantiation: pi.c:opj_int_ceildivpow2
tcd.c:opj_int_ceildivpow2
Line
Count
Source
192
516k
{
193
516k
    return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b);
194
516k
}
Unexecuted instantiation: tgt.c:opj_int_ceildivpow2
Unexecuted instantiation: function_list.c:opj_int_ceildivpow2
Unexecuted instantiation: thread.c:opj_int_ceildivpow2
Unexecuted instantiation: bio.c:opj_int_ceildivpow2
Unexecuted instantiation: dwt.c:opj_int_ceildivpow2
Unexecuted instantiation: invert.c:opj_int_ceildivpow2
Unexecuted instantiation: t1.c:opj_int_ceildivpow2
Unexecuted instantiation: t2.c:opj_int_ceildivpow2
Unexecuted instantiation: sparse_array.c:opj_int_ceildivpow2
Unexecuted instantiation: ht_dec.c:opj_int_ceildivpow2
Unexecuted instantiation: mqc.c:opj_int_ceildivpow2
195
196
/**
197
 Divide a 64bits integer by a power of 2 and round upwards
198
 @return Returns a divided by 2^b
199
 */
200
static INLINE OPJ_INT32 opj_int64_ceildivpow2(OPJ_INT64 a, OPJ_INT32 b)
201
26.9k
{
202
26.9k
    return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b);
203
26.9k
}
Unexecuted instantiation: cio.c:opj_int64_ceildivpow2
Unexecuted instantiation: event.c:opj_int64_ceildivpow2
Unexecuted instantiation: image.c:opj_int64_ceildivpow2
Unexecuted instantiation: openjpeg.c:opj_int64_ceildivpow2
Unexecuted instantiation: opj_malloc.c:opj_int64_ceildivpow2
Unexecuted instantiation: j2k.c:opj_int64_ceildivpow2
Unexecuted instantiation: jp2.c:opj_int64_ceildivpow2
Unexecuted instantiation: mct.c:opj_int64_ceildivpow2
Unexecuted instantiation: pi.c:opj_int64_ceildivpow2
tcd.c:opj_int64_ceildivpow2
Line
Count
Source
201
26.9k
{
202
26.9k
    return (OPJ_INT32)((a + ((OPJ_INT64)1 << b) - 1) >> b);
203
26.9k
}
Unexecuted instantiation: tgt.c:opj_int64_ceildivpow2
Unexecuted instantiation: function_list.c:opj_int64_ceildivpow2
Unexecuted instantiation: thread.c:opj_int64_ceildivpow2
Unexecuted instantiation: bio.c:opj_int64_ceildivpow2
Unexecuted instantiation: dwt.c:opj_int64_ceildivpow2
Unexecuted instantiation: invert.c:opj_int64_ceildivpow2
Unexecuted instantiation: t1.c:opj_int64_ceildivpow2
Unexecuted instantiation: t2.c:opj_int64_ceildivpow2
Unexecuted instantiation: sparse_array.c:opj_int64_ceildivpow2
Unexecuted instantiation: ht_dec.c:opj_int64_ceildivpow2
Unexecuted instantiation: mqc.c:opj_int64_ceildivpow2
204
205
/**
206
 Divide an integer by a power of 2 and round upwards
207
 @return Returns a divided by 2^b
208
 */
209
static INLINE OPJ_UINT32 opj_uint_ceildivpow2(OPJ_UINT32 a, OPJ_UINT32 b)
210
627k
{
211
627k
    return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b);
212
627k
}
Unexecuted instantiation: cio.c:opj_uint_ceildivpow2
Unexecuted instantiation: event.c:opj_uint_ceildivpow2
image.c:opj_uint_ceildivpow2
Line
Count
Source
210
3.95k
{
211
3.95k
    return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b);
212
3.95k
}
Unexecuted instantiation: openjpeg.c:opj_uint_ceildivpow2
Unexecuted instantiation: opj_malloc.c:opj_uint_ceildivpow2
j2k.c:opj_uint_ceildivpow2
Line
Count
Source
210
8.83k
{
211
8.83k
    return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b);
212
8.83k
}
Unexecuted instantiation: jp2.c:opj_uint_ceildivpow2
Unexecuted instantiation: mct.c:opj_uint_ceildivpow2
pi.c:opj_uint_ceildivpow2
Line
Count
Source
210
42.9k
{
211
42.9k
    return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b);
212
42.9k
}
tcd.c:opj_uint_ceildivpow2
Line
Count
Source
210
571k
{
211
571k
    return (OPJ_UINT32)((a + ((OPJ_UINT64)1U << b) - 1U) >> b);
212
571k
}
Unexecuted instantiation: tgt.c:opj_uint_ceildivpow2
Unexecuted instantiation: function_list.c:opj_uint_ceildivpow2
Unexecuted instantiation: thread.c:opj_uint_ceildivpow2
Unexecuted instantiation: bio.c:opj_uint_ceildivpow2
Unexecuted instantiation: dwt.c:opj_uint_ceildivpow2
Unexecuted instantiation: invert.c:opj_uint_ceildivpow2
Unexecuted instantiation: t1.c:opj_uint_ceildivpow2
Unexecuted instantiation: t2.c:opj_uint_ceildivpow2
Unexecuted instantiation: sparse_array.c:opj_uint_ceildivpow2
Unexecuted instantiation: ht_dec.c:opj_uint_ceildivpow2
Unexecuted instantiation: mqc.c:opj_uint_ceildivpow2
213
214
/**
215
Divide an integer by a power of 2 and round downwards
216
@return Returns a divided by 2^b
217
*/
218
static INLINE OPJ_INT32 opj_int_floordivpow2(OPJ_INT32 a, OPJ_INT32 b)
219
464k
{
220
464k
    return a >> b;
221
464k
}
Unexecuted instantiation: cio.c:opj_int_floordivpow2
Unexecuted instantiation: event.c:opj_int_floordivpow2
Unexecuted instantiation: image.c:opj_int_floordivpow2
Unexecuted instantiation: openjpeg.c:opj_int_floordivpow2
Unexecuted instantiation: opj_malloc.c:opj_int_floordivpow2
Unexecuted instantiation: j2k.c:opj_int_floordivpow2
Unexecuted instantiation: jp2.c:opj_int_floordivpow2
Unexecuted instantiation: mct.c:opj_int_floordivpow2
Unexecuted instantiation: pi.c:opj_int_floordivpow2
tcd.c:opj_int_floordivpow2
Line
Count
Source
219
464k
{
220
464k
    return a >> b;
221
464k
}
Unexecuted instantiation: tgt.c:opj_int_floordivpow2
Unexecuted instantiation: function_list.c:opj_int_floordivpow2
Unexecuted instantiation: thread.c:opj_int_floordivpow2
Unexecuted instantiation: bio.c:opj_int_floordivpow2
Unexecuted instantiation: dwt.c:opj_int_floordivpow2
Unexecuted instantiation: invert.c:opj_int_floordivpow2
Unexecuted instantiation: t1.c:opj_int_floordivpow2
Unexecuted instantiation: t2.c:opj_int_floordivpow2
Unexecuted instantiation: sparse_array.c:opj_int_floordivpow2
Unexecuted instantiation: ht_dec.c:opj_int_floordivpow2
Unexecuted instantiation: mqc.c:opj_int_floordivpow2
222
223
/**
224
Divide an integer by a power of 2 and round downwards
225
@return Returns a divided by 2^b
226
*/
227
static INLINE OPJ_UINT32 opj_uint_floordivpow2(OPJ_UINT32 a, OPJ_UINT32 b)
228
30.2k
{
229
30.2k
    return a >> b;
230
30.2k
}
Unexecuted instantiation: cio.c:opj_uint_floordivpow2
Unexecuted instantiation: event.c:opj_uint_floordivpow2
Unexecuted instantiation: image.c:opj_uint_floordivpow2
Unexecuted instantiation: openjpeg.c:opj_uint_floordivpow2
Unexecuted instantiation: opj_malloc.c:opj_uint_floordivpow2
Unexecuted instantiation: j2k.c:opj_uint_floordivpow2
Unexecuted instantiation: jp2.c:opj_uint_floordivpow2
Unexecuted instantiation: mct.c:opj_uint_floordivpow2
pi.c:opj_uint_floordivpow2
Line
Count
Source
228
30.2k
{
229
30.2k
    return a >> b;
230
30.2k
}
Unexecuted instantiation: tcd.c:opj_uint_floordivpow2
Unexecuted instantiation: tgt.c:opj_uint_floordivpow2
Unexecuted instantiation: function_list.c:opj_uint_floordivpow2
Unexecuted instantiation: thread.c:opj_uint_floordivpow2
Unexecuted instantiation: bio.c:opj_uint_floordivpow2
Unexecuted instantiation: dwt.c:opj_uint_floordivpow2
Unexecuted instantiation: invert.c:opj_uint_floordivpow2
Unexecuted instantiation: t1.c:opj_uint_floordivpow2
Unexecuted instantiation: t2.c:opj_uint_floordivpow2
Unexecuted instantiation: sparse_array.c:opj_uint_floordivpow2
Unexecuted instantiation: ht_dec.c:opj_uint_floordivpow2
Unexecuted instantiation: mqc.c:opj_uint_floordivpow2
231
232
/**
233
Get logarithm of an integer and round downwards
234
@return Returns log2(a)
235
*/
236
static INLINE OPJ_INT32 opj_int_floorlog2(OPJ_INT32 a)
237
0
{
238
0
    OPJ_INT32 l;
239
0
    for (l = 0; a > 1; l++) {
240
0
        a >>= 1;
241
0
    }
242
0
    return l;
243
0
}
Unexecuted instantiation: cio.c:opj_int_floorlog2
Unexecuted instantiation: event.c:opj_int_floorlog2
Unexecuted instantiation: image.c:opj_int_floorlog2
Unexecuted instantiation: openjpeg.c:opj_int_floorlog2
Unexecuted instantiation: opj_malloc.c:opj_int_floorlog2
Unexecuted instantiation: j2k.c:opj_int_floorlog2
Unexecuted instantiation: jp2.c:opj_int_floorlog2
Unexecuted instantiation: mct.c:opj_int_floorlog2
Unexecuted instantiation: pi.c:opj_int_floorlog2
Unexecuted instantiation: tcd.c:opj_int_floorlog2
Unexecuted instantiation: tgt.c:opj_int_floorlog2
Unexecuted instantiation: function_list.c:opj_int_floorlog2
Unexecuted instantiation: thread.c:opj_int_floorlog2
Unexecuted instantiation: bio.c:opj_int_floorlog2
Unexecuted instantiation: dwt.c:opj_int_floorlog2
Unexecuted instantiation: invert.c:opj_int_floorlog2
Unexecuted instantiation: t1.c:opj_int_floorlog2
Unexecuted instantiation: t2.c:opj_int_floorlog2
Unexecuted instantiation: sparse_array.c:opj_int_floorlog2
Unexecuted instantiation: ht_dec.c:opj_int_floorlog2
Unexecuted instantiation: mqc.c:opj_int_floorlog2
244
/**
245
Get logarithm of an integer and round downwards
246
@return Returns log2(a)
247
*/
248
static INLINE OPJ_UINT32  opj_uint_floorlog2(OPJ_UINT32  a)
249
654k
{
250
654k
    OPJ_UINT32  l;
251
1.42M
    for (l = 0; a > 1; ++l) {
252
773k
        a >>= 1;
253
773k
    }
254
654k
    return l;
255
654k
}
Unexecuted instantiation: cio.c:opj_uint_floorlog2
Unexecuted instantiation: event.c:opj_uint_floorlog2
Unexecuted instantiation: image.c:opj_uint_floorlog2
Unexecuted instantiation: openjpeg.c:opj_uint_floorlog2
Unexecuted instantiation: opj_malloc.c:opj_uint_floorlog2
Unexecuted instantiation: j2k.c:opj_uint_floorlog2
Unexecuted instantiation: jp2.c:opj_uint_floorlog2
Unexecuted instantiation: mct.c:opj_uint_floorlog2
Unexecuted instantiation: pi.c:opj_uint_floorlog2
Unexecuted instantiation: tcd.c:opj_uint_floorlog2
Unexecuted instantiation: tgt.c:opj_uint_floorlog2
Unexecuted instantiation: function_list.c:opj_uint_floorlog2
Unexecuted instantiation: thread.c:opj_uint_floorlog2
Unexecuted instantiation: bio.c:opj_uint_floorlog2
Unexecuted instantiation: dwt.c:opj_uint_floorlog2
Unexecuted instantiation: invert.c:opj_uint_floorlog2
Unexecuted instantiation: t1.c:opj_uint_floorlog2
t2.c:opj_uint_floorlog2
Line
Count
Source
249
654k
{
250
654k
    OPJ_UINT32  l;
251
1.42M
    for (l = 0; a > 1; ++l) {
252
773k
        a >>= 1;
253
773k
    }
254
654k
    return l;
255
654k
}
Unexecuted instantiation: sparse_array.c:opj_uint_floorlog2
Unexecuted instantiation: ht_dec.c:opj_uint_floorlog2
Unexecuted instantiation: mqc.c:opj_uint_floorlog2
256
257
/**
258
Multiply two fixed-precision rational numbers.
259
@param a
260
@param b
261
@return Returns a * b
262
*/
263
static INLINE OPJ_INT32 opj_int_fix_mul(OPJ_INT32 a, OPJ_INT32 b)
264
0
{
265
#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86)
266
    OPJ_INT64 temp = __emul(a, b);
267
#else
268
0
    OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;
269
0
#endif
270
0
    temp += 4096;
271
0
    assert((temp >> 13) <= (OPJ_INT64)0x7FFFFFFF);
272
0
    assert((temp >> 13) >= (-(OPJ_INT64)0x7FFFFFFF - (OPJ_INT64)1));
273
0
    return (OPJ_INT32)(temp >> 13);
274
0
}
Unexecuted instantiation: cio.c:opj_int_fix_mul
Unexecuted instantiation: event.c:opj_int_fix_mul
Unexecuted instantiation: image.c:opj_int_fix_mul
Unexecuted instantiation: openjpeg.c:opj_int_fix_mul
Unexecuted instantiation: opj_malloc.c:opj_int_fix_mul
Unexecuted instantiation: j2k.c:opj_int_fix_mul
Unexecuted instantiation: jp2.c:opj_int_fix_mul
Unexecuted instantiation: mct.c:opj_int_fix_mul
Unexecuted instantiation: pi.c:opj_int_fix_mul
Unexecuted instantiation: tcd.c:opj_int_fix_mul
Unexecuted instantiation: tgt.c:opj_int_fix_mul
Unexecuted instantiation: function_list.c:opj_int_fix_mul
Unexecuted instantiation: thread.c:opj_int_fix_mul
Unexecuted instantiation: bio.c:opj_int_fix_mul
Unexecuted instantiation: dwt.c:opj_int_fix_mul
Unexecuted instantiation: invert.c:opj_int_fix_mul
Unexecuted instantiation: t1.c:opj_int_fix_mul
Unexecuted instantiation: t2.c:opj_int_fix_mul
Unexecuted instantiation: sparse_array.c:opj_int_fix_mul
Unexecuted instantiation: ht_dec.c:opj_int_fix_mul
Unexecuted instantiation: mqc.c:opj_int_fix_mul
275
276
static INLINE OPJ_INT32 opj_int_fix_mul_t1(OPJ_INT32 a, OPJ_INT32 b)
277
0
{
278
0
#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__INTEL_COMPILER) && defined(_M_IX86)
279
0
    OPJ_INT64 temp = __emul(a, b);
280
0
#else
281
0
    OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;
282
0
#endif
283
0
    temp += 4096;
284
0
    assert((temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) <= (OPJ_INT64)0x7FFFFFFF);
285
0
    assert((temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) >= (-(OPJ_INT64)0x7FFFFFFF -
286
0
            (OPJ_INT64)1));
287
0
    return (OPJ_INT32)(temp >> (13 + 11 - T1_NMSEDEC_FRACBITS)) ;
288
0
}
Unexecuted instantiation: cio.c:opj_int_fix_mul_t1
Unexecuted instantiation: event.c:opj_int_fix_mul_t1
Unexecuted instantiation: image.c:opj_int_fix_mul_t1
Unexecuted instantiation: openjpeg.c:opj_int_fix_mul_t1
Unexecuted instantiation: opj_malloc.c:opj_int_fix_mul_t1
Unexecuted instantiation: j2k.c:opj_int_fix_mul_t1
Unexecuted instantiation: jp2.c:opj_int_fix_mul_t1
Unexecuted instantiation: mct.c:opj_int_fix_mul_t1
Unexecuted instantiation: pi.c:opj_int_fix_mul_t1
Unexecuted instantiation: tcd.c:opj_int_fix_mul_t1
Unexecuted instantiation: tgt.c:opj_int_fix_mul_t1
Unexecuted instantiation: function_list.c:opj_int_fix_mul_t1
Unexecuted instantiation: thread.c:opj_int_fix_mul_t1
Unexecuted instantiation: bio.c:opj_int_fix_mul_t1
Unexecuted instantiation: dwt.c:opj_int_fix_mul_t1
Unexecuted instantiation: invert.c:opj_int_fix_mul_t1
Unexecuted instantiation: t1.c:opj_int_fix_mul_t1
Unexecuted instantiation: t2.c:opj_int_fix_mul_t1
Unexecuted instantiation: sparse_array.c:opj_int_fix_mul_t1
Unexecuted instantiation: ht_dec.c:opj_int_fix_mul_t1
Unexecuted instantiation: mqc.c:opj_int_fix_mul_t1
289
290
/**
291
Addition two signed integers with a wrap-around behaviour.
292
Assumes complement-to-two signed integers.
293
@param a
294
@param b
295
@return Returns a + b
296
*/
297
static INLINE OPJ_INT32 opj_int_add_no_overflow(OPJ_INT32 a, OPJ_INT32 b)
298
7.39M
{
299
7.39M
    void* pa = &a;
300
7.39M
    void* pb = &b;
301
7.39M
    OPJ_UINT32* upa = (OPJ_UINT32*)pa;
302
7.39M
    OPJ_UINT32* upb = (OPJ_UINT32*)pb;
303
7.39M
    OPJ_UINT32 ures = *upa + *upb;
304
7.39M
    void* pures = &ures;
305
7.39M
    OPJ_INT32* ipres = (OPJ_INT32*)pures;
306
7.39M
    return *ipres;
307
7.39M
}
Unexecuted instantiation: cio.c:opj_int_add_no_overflow
Unexecuted instantiation: event.c:opj_int_add_no_overflow
Unexecuted instantiation: image.c:opj_int_add_no_overflow
Unexecuted instantiation: openjpeg.c:opj_int_add_no_overflow
Unexecuted instantiation: opj_malloc.c:opj_int_add_no_overflow
Unexecuted instantiation: j2k.c:opj_int_add_no_overflow
Unexecuted instantiation: jp2.c:opj_int_add_no_overflow
Unexecuted instantiation: mct.c:opj_int_add_no_overflow
Unexecuted instantiation: pi.c:opj_int_add_no_overflow
Unexecuted instantiation: tcd.c:opj_int_add_no_overflow
Unexecuted instantiation: tgt.c:opj_int_add_no_overflow
Unexecuted instantiation: function_list.c:opj_int_add_no_overflow
Unexecuted instantiation: thread.c:opj_int_add_no_overflow
Unexecuted instantiation: bio.c:opj_int_add_no_overflow
dwt.c:opj_int_add_no_overflow
Line
Count
Source
298
7.39M
{
299
7.39M
    void* pa = &a;
300
7.39M
    void* pb = &b;
301
7.39M
    OPJ_UINT32* upa = (OPJ_UINT32*)pa;
302
7.39M
    OPJ_UINT32* upb = (OPJ_UINT32*)pb;
303
7.39M
    OPJ_UINT32 ures = *upa + *upb;
304
7.39M
    void* pures = &ures;
305
7.39M
    OPJ_INT32* ipres = (OPJ_INT32*)pures;
306
7.39M
    return *ipres;
307
7.39M
}
Unexecuted instantiation: invert.c:opj_int_add_no_overflow
Unexecuted instantiation: t1.c:opj_int_add_no_overflow
Unexecuted instantiation: t2.c:opj_int_add_no_overflow
Unexecuted instantiation: sparse_array.c:opj_int_add_no_overflow
Unexecuted instantiation: ht_dec.c:opj_int_add_no_overflow
Unexecuted instantiation: mqc.c:opj_int_add_no_overflow
308
309
/**
310
Subtract two signed integers with a wrap-around behaviour.
311
Assumes complement-to-two signed integers.
312
@param a
313
@param b
314
@return Returns a - b
315
*/
316
static INLINE OPJ_INT32 opj_int_sub_no_overflow(OPJ_INT32 a, OPJ_INT32 b)
317
83.5k
{
318
83.5k
    void* pa = &a;
319
83.5k
    void* pb = &b;
320
83.5k
    OPJ_UINT32* upa = (OPJ_UINT32*)pa;
321
83.5k
    OPJ_UINT32* upb = (OPJ_UINT32*)pb;
322
83.5k
    OPJ_UINT32 ures = *upa - *upb;
323
83.5k
    void* pures = &ures;
324
83.5k
    OPJ_INT32* ipres = (OPJ_INT32*)pures;
325
83.5k
    return *ipres;
326
83.5k
}
Unexecuted instantiation: cio.c:opj_int_sub_no_overflow
Unexecuted instantiation: event.c:opj_int_sub_no_overflow
Unexecuted instantiation: image.c:opj_int_sub_no_overflow
Unexecuted instantiation: openjpeg.c:opj_int_sub_no_overflow
Unexecuted instantiation: opj_malloc.c:opj_int_sub_no_overflow
Unexecuted instantiation: j2k.c:opj_int_sub_no_overflow
Unexecuted instantiation: jp2.c:opj_int_sub_no_overflow
Unexecuted instantiation: mct.c:opj_int_sub_no_overflow
Unexecuted instantiation: pi.c:opj_int_sub_no_overflow
Unexecuted instantiation: tcd.c:opj_int_sub_no_overflow
Unexecuted instantiation: tgt.c:opj_int_sub_no_overflow
Unexecuted instantiation: function_list.c:opj_int_sub_no_overflow
Unexecuted instantiation: thread.c:opj_int_sub_no_overflow
Unexecuted instantiation: bio.c:opj_int_sub_no_overflow
dwt.c:opj_int_sub_no_overflow
Line
Count
Source
317
83.5k
{
318
83.5k
    void* pa = &a;
319
83.5k
    void* pb = &b;
320
83.5k
    OPJ_UINT32* upa = (OPJ_UINT32*)pa;
321
83.5k
    OPJ_UINT32* upb = (OPJ_UINT32*)pb;
322
83.5k
    OPJ_UINT32 ures = *upa - *upb;
323
83.5k
    void* pures = &ures;
324
83.5k
    OPJ_INT32* ipres = (OPJ_INT32*)pures;
325
83.5k
    return *ipres;
326
83.5k
}
Unexecuted instantiation: invert.c:opj_int_sub_no_overflow
Unexecuted instantiation: t1.c:opj_int_sub_no_overflow
Unexecuted instantiation: t2.c:opj_int_sub_no_overflow
Unexecuted instantiation: sparse_array.c:opj_int_sub_no_overflow
Unexecuted instantiation: ht_dec.c:opj_int_sub_no_overflow
Unexecuted instantiation: mqc.c:opj_int_sub_no_overflow
327
328
/* ----------------------------------------------------------------------- */
329
/*@}*/
330
331
/*@}*/
332
333
#endif /* OPJ_INTMATH_H */