Coverage Report

Created: 2025-08-29 07:30

/src/vlc/include/vlc_arrays.h
Line
Count
Source (jump to first uncovered line)
1
/*****************************************************************************
2
 * vlc_arrays.h : Arrays and data structures handling
3
 *****************************************************************************
4
 * Copyright (C) 1999-2004 VLC authors and VideoLAN
5
 *
6
 * Authors: Samuel Hocevar <sam@zoy.org>
7
 *          Clément Stenac <zorglub@videolan.org>
8
 *
9
 * This program is free software; you can redistribute it and/or modify it
10
 * under the terms of the GNU Lesser General Public License as published by
11
 * the Free Software Foundation; either version 2.1 of the License, or
12
 * (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
 * GNU Lesser General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU Lesser General Public License
20
 * along with this program; if not, write to the Free Software Foundation,
21
 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22
 *****************************************************************************/
23
24
#ifndef VLC_ARRAYS_H_
25
#define VLC_ARRAYS_H_
26
27
#include <vlc_common.h>
28
29
/**
30
 * \file
31
 * This file defines functions, structures and macros for handling arrays in vlc
32
 */
33
34
/* realloc() that never fails *if* downsizing */
35
static inline void *realloc_down( void *ptr, size_t size )
36
0
{
37
0
    void *ret = realloc( ptr, size );
38
0
    return ret ? ret : ptr;
39
0
}
Unexecuted instantiation: demux-run.c:realloc_down
Unexecuted instantiation: common.c:realloc_down
Unexecuted instantiation: decoder.c:realloc_down
Unexecuted instantiation: core.c:realloc_down
Unexecuted instantiation: error.c:realloc_down
Unexecuted instantiation: asf.c:realloc_down
Unexecuted instantiation: avi.c:realloc_down
Unexecuted instantiation: es.c:realloc_down
Unexecuted instantiation: flac.c:realloc_down
Unexecuted instantiation: xiph_metadata.c:realloc_down
Unexecuted instantiation: mp4.c:realloc_down
Unexecuted instantiation: heif.c:realloc_down
Unexecuted instantiation: sap.c:realloc_down
Unexecuted instantiation: subtitle.c:realloc_down
Unexecuted instantiation: ttml.c:realloc_down
Unexecuted instantiation: encttml.c:realloc_down
Unexecuted instantiation: substtml.c:realloc_down
Unexecuted instantiation: genttml.c:realloc_down
Unexecuted instantiation: subsvtt.c:realloc_down
Unexecuted instantiation: ogg.c:realloc_down
Unexecuted instantiation: matroska_segment.cpp:realloc_down(void*, unsigned long)
Unexecuted instantiation: chapters.cpp:realloc_down(void*, unsigned long)
Unexecuted instantiation: chapter_command.cpp:realloc_down(void*, unsigned long)
Unexecuted instantiation: subsusf.c:realloc_down
Unexecuted instantiation: libvlc.c:realloc_down
Unexecuted instantiation: media_tree.c:realloc_down
Unexecuted instantiation: modules.c:realloc_down
Unexecuted instantiation: entry.c:realloc_down
Unexecuted instantiation: dialog.c:realloc_down
Unexecuted instantiation: interface.c:realloc_down
Unexecuted instantiation: item.c:realloc_down
Unexecuted instantiation: access.c:realloc_down
Unexecuted instantiation: demux.c:realloc_down
Unexecuted instantiation: input.c:realloc_down
Unexecuted instantiation: meta.c:realloc_down
Unexecuted instantiation: parse.c:realloc_down
Unexecuted instantiation: player.c:realloc_down
Unexecuted instantiation: stream.c:realloc_down
Unexecuted instantiation: stream_extractor.c:realloc_down
Unexecuted instantiation: stream_filter.c:realloc_down
Unexecuted instantiation: stream_memory.c:realloc_down
Unexecuted instantiation: subtitles.c:realloc_down
Unexecuted instantiation: video_output.c:realloc_down
Unexecuted instantiation: strings.c:realloc_down
Unexecuted instantiation: epg.c:realloc_down
Unexecuted instantiation: exit.c:realloc_down
Unexecuted instantiation: variables.c:realloc_down
Unexecuted instantiation: httpcookies.c:realloc_down
Unexecuted instantiation: specific.c:realloc_down
Unexecuted instantiation: stream_output.c:realloc_down
Unexecuted instantiation: vlm.c:realloc_down
Unexecuted instantiation: vlm_event.c:realloc_down
Unexecuted instantiation: vlmshell.c:realloc_down
Unexecuted instantiation: fetcher.c:realloc_down
Unexecuted instantiation: es_out.c:realloc_down
Unexecuted instantiation: es_out_timeshift.c:realloc_down
40
41
/**
42
 * This wrapper around realloc() will free the input pointer when
43
 * realloc() returns NULL. The use case ptr = realloc(ptr, newsize) will
44
 * cause a memory leak when ptr pointed to a heap allocation before,
45
 * leaving the buffer allocated but unreferenced. vlc_realloc() is a
46
 * drop-in replacement for that use case (and only that use case).
47
 */
48
static inline void *realloc_or_free( void *p, size_t sz )
49
494k
{
50
494k
    void *n = realloc(p,sz);
51
494k
    if( !n )
52
0
        free(p);
53
494k
    return n;
54
494k
}
Unexecuted instantiation: demux-run.c:realloc_or_free
Unexecuted instantiation: common.c:realloc_or_free
Unexecuted instantiation: decoder.c:realloc_or_free
Unexecuted instantiation: core.c:realloc_or_free
Unexecuted instantiation: error.c:realloc_or_free
Unexecuted instantiation: asf.c:realloc_or_free
avi.c:realloc_or_free
Line
Count
Source
49
4.17k
{
50
4.17k
    void *n = realloc(p,sz);
51
4.17k
    if( !n )
52
0
        free(p);
53
4.17k
    return n;
54
4.17k
}
Unexecuted instantiation: es.c:realloc_or_free
Unexecuted instantiation: flac.c:realloc_or_free
Unexecuted instantiation: xiph_metadata.c:realloc_or_free
Unexecuted instantiation: mp4.c:realloc_or_free
Unexecuted instantiation: heif.c:realloc_or_free
Unexecuted instantiation: sap.c:realloc_or_free
subtitle.c:realloc_or_free
Line
Count
Source
49
485k
{
50
485k
    void *n = realloc(p,sz);
51
485k
    if( !n )
52
0
        free(p);
53
485k
    return n;
54
485k
}
Unexecuted instantiation: ttml.c:realloc_or_free
Unexecuted instantiation: encttml.c:realloc_or_free
Unexecuted instantiation: substtml.c:realloc_or_free
Unexecuted instantiation: genttml.c:realloc_or_free
Unexecuted instantiation: subsvtt.c:realloc_or_free
Unexecuted instantiation: ogg.c:realloc_or_free
Unexecuted instantiation: matroska_segment.cpp:realloc_or_free(void*, unsigned long)
Unexecuted instantiation: chapters.cpp:realloc_or_free(void*, unsigned long)
Unexecuted instantiation: chapter_command.cpp:realloc_or_free(void*, unsigned long)
Unexecuted instantiation: subsusf.c:realloc_or_free
Unexecuted instantiation: libvlc.c:realloc_or_free
Unexecuted instantiation: media_tree.c:realloc_or_free
Unexecuted instantiation: modules.c:realloc_or_free
entry.c:realloc_or_free
Line
Count
Source
49
4.83k
{
50
4.83k
    void *n = realloc(p,sz);
51
4.83k
    if( !n )
52
0
        free(p);
53
4.83k
    return n;
54
4.83k
}
Unexecuted instantiation: dialog.c:realloc_or_free
Unexecuted instantiation: interface.c:realloc_or_free
Unexecuted instantiation: item.c:realloc_or_free
Unexecuted instantiation: access.c:realloc_or_free
Unexecuted instantiation: demux.c:realloc_or_free
Unexecuted instantiation: input.c:realloc_or_free
Unexecuted instantiation: meta.c:realloc_or_free
Unexecuted instantiation: parse.c:realloc_or_free
Unexecuted instantiation: player.c:realloc_or_free
Unexecuted instantiation: stream.c:realloc_or_free
Unexecuted instantiation: stream_extractor.c:realloc_or_free
Unexecuted instantiation: stream_filter.c:realloc_or_free
Unexecuted instantiation: stream_memory.c:realloc_or_free
Unexecuted instantiation: subtitles.c:realloc_or_free
Unexecuted instantiation: video_output.c:realloc_or_free
Unexecuted instantiation: strings.c:realloc_or_free
Unexecuted instantiation: epg.c:realloc_or_free
Unexecuted instantiation: exit.c:realloc_or_free
Unexecuted instantiation: variables.c:realloc_or_free
Unexecuted instantiation: httpcookies.c:realloc_or_free
Unexecuted instantiation: specific.c:realloc_or_free
Unexecuted instantiation: stream_output.c:realloc_or_free
Unexecuted instantiation: vlm.c:realloc_or_free
Unexecuted instantiation: vlm_event.c:realloc_or_free
Unexecuted instantiation: vlmshell.c:realloc_or_free
Unexecuted instantiation: fetcher.c:realloc_or_free
Unexecuted instantiation: es_out.c:realloc_or_free
Unexecuted instantiation: es_out_timeshift.c:realloc_or_free
55
56
#define TAB_INIT( count, tab )                  \
57
38.4k
  do {                                          \
58
38.4k
    (count) = 0;                                \
59
38.4k
    (tab) = NULL;                               \
60
38.4k
  } while(0)
61
62
#define TAB_CLEAN( count, tab )                 \
63
32.7k
  do {                                          \
64
32.7k
    free( tab );                                \
65
32.7k
    (count)= 0;                                 \
66
32.7k
    (tab)= NULL;                                \
67
32.7k
  } while(0)
68
69
#define TAB_APPEND_CAST( cast, count, tab, p )             \
70
212k
  do {                                          \
71
212k
    if( (count) > 0 )                           \
72
212k
        (tab) = cast realloc( tab, sizeof( *(tab) ) * ( (count) + 1 ) ); \
73
212k
    else                                        \
74
212k
        (tab) = cast malloc( sizeof( *(tab) ) );    \
75
212k
    if( !(tab) ) abort();                       \
76
212k
    (tab)[count] = (p);                         \
77
212k
    (count)++;                                  \
78
212k
  } while(0)
79
80
#define TAB_APPEND( count, tab, p )             \
81
212k
    TAB_APPEND_CAST( , count, tab, p )
82
83
#define TAB_FIND( count, tab, p, idx )          \
84
0
  do {                                          \
85
0
    for( (idx) = 0; (idx) < (count); (idx)++ )  \
86
0
        if( (tab)[(idx)] == (p) )               \
87
0
            break;                              \
88
0
    if( (idx) >= (count) )                      \
89
0
        (idx) = -1;                             \
90
0
  } while(0)
91
92
93
#define TAB_ERASE( count, tab, index )      \
94
11.6k
  do {                                      \
95
11.6k
        if( (count) > 1 )                   \
96
11.6k
            memmove( (tab) + (index),       \
97
2.52k
                     (tab) + (index) + 1,   \
98
2.52k
                     ((count) - (index) - 1 ) * sizeof( *(tab) ) );\
99
11.6k
        (count)--;                          \
100
11.6k
        if( (count) == 0 )                  \
101
11.6k
        {                                   \
102
9.14k
            free( tab );                    \
103
9.14k
            (tab) = NULL;                   \
104
9.14k
        }                                   \
105
11.6k
  } while(0)
106
107
#define TAB_REMOVE( count, tab, p )             \
108
0
  do {                                          \
109
0
        int i_index;                            \
110
0
        TAB_FIND( count, tab, p, i_index );     \
111
0
        if( i_index >= 0 )                      \
112
0
            TAB_ERASE( count, tab, i_index );   \
113
0
  } while(0)
114
115
0
#define TAB_INSERT_CAST( cast, count, tab, p, index ) do { \
116
0
    if( (count) > 0 )                           \
117
0
        (tab) = cast realloc( tab, sizeof( *(tab) ) * ( (count) + 1 ) ); \
118
0
    else                                        \
119
0
        (tab) = cast malloc( sizeof( *(tab) ) );       \
120
0
    if( !(tab) ) abort();                       \
121
0
    if( (count) - (index) > 0 )                 \
122
0
        memmove( (tab) + (index) + 1,           \
123
0
                 (tab) + (index),               \
124
0
                 ((count) - (index)) * sizeof( *(tab) ) );\
125
0
    (tab)[(index)] = (p);                       \
126
0
    (count)++;                                  \
127
0
} while(0)
128
129
#define TAB_INSERT( count, tab, p, index )      \
130
0
    TAB_INSERT_CAST( , count, tab, p, index )
131
132
/**
133
 * Binary search in a sorted array. The key must be comparable by < and >
134
 * \param entries array of entries
135
 * \param count number of entries
136
 * \param elem key to check within an entry (like .id, or ->i_id)
137
 * \param zetype type of the key
138
 * \param key value of the key
139
 * \param answer index of answer within the array. -1 if not found
140
 */
141
#define BSEARCH( entries, count, elem, zetype, key, answer ) \
142
   do {  \
143
    int low = 0, high = count - 1;   \
144
    answer = -1; \
145
    while( low <= high ) {\
146
        int mid = ((unsigned int)low + (unsigned int)high) >> 1;\
147
        zetype mid_val = entries[mid] elem;\
148
        if( mid_val < key ) \
149
            low = mid + 1; \
150
        else if ( mid_val > key ) \
151
            high = mid -1;  \
152
        else    \
153
        {   \
154
            answer = mid;  break;   \
155
        }\
156
    } \
157
 } while(0)
158
159
160
/************************************************************************
161
 * Dynamic arrays with progressive allocation
162
 ************************************************************************/
163
164
/* Internal functions */
165
0
#define _ARRAY_ALLOC(array, newsize) {                                      \
166
0
    (array).i_alloc = newsize;                                              \
167
0
    (array).p_elems = vlc_reallocarray( (array).p_elems, (array).i_alloc,   \
168
0
                               sizeof(*(array).p_elems) );                  \
169
0
    if( !(array).p_elems ) abort();                                         \
170
0
}
171
172
0
#define _ARRAY_GROW1(array) {                                               \
173
0
    if( (array).i_alloc < 10 )                                              \
174
0
        _ARRAY_ALLOC(array, 10 )                                            \
175
0
    else if( (array).i_alloc == (array).i_size )                            \
176
0
        _ARRAY_ALLOC(array, (int)((array).i_alloc * 1.5) )                    \
177
0
}
178
179
/* API */
180
0
#define DECL_ARRAY(type) struct {                                           \
181
0
    int i_alloc;                                                            \
182
0
    int i_size;                                                             \
183
0
    type *p_elems;                                                          \
184
0
}
185
186
#define TYPEDEF_ARRAY(type, name) typedef DECL_ARRAY(type) name;
187
188
#define ARRAY_INIT(array)                                                   \
189
0
  do {                                                                      \
190
0
    (array).i_alloc = 0;                                                    \
191
0
    (array).i_size = 0;                                                     \
192
0
    (array).p_elems = NULL;                                                 \
193
0
  } while(0)
194
195
#define ARRAY_RESET(array)                                                  \
196
  do {                                                                      \
197
    (array).i_alloc = 0;                                                    \
198
    (array).i_size = 0;                                                     \
199
    free( (array).p_elems ); (array).p_elems = NULL;                        \
200
  } while(0)
201
202
#define ARRAY_APPEND(array, elem)                                           \
203
0
  do {                                                                      \
204
0
    _ARRAY_GROW1(array);                                                    \
205
0
    (array).p_elems[(array).i_size] = elem;                                 \
206
0
    (array).i_size++;                                                       \
207
0
  } while(0)
208
209
#define ARRAY_INSERT(array,elem,pos)                                        \
210
  do {                                                                      \
211
    _ARRAY_GROW1(array);                                                    \
212
    if( (array).i_size - (pos) ) {                                          \
213
        memmove( (array).p_elems + (pos) + 1, (array).p_elems + (pos),      \
214
                 ((array).i_size-(pos)) * sizeof(*(array).p_elems) );       \
215
    }                                                                       \
216
    (array).p_elems[pos] = elem;                                            \
217
    (array).i_size++;                                                       \
218
  } while(0)
219
220
#define _ARRAY_SHRINK(array) {                                              \
221
    if( (array).i_size > 10 && (array).i_size < (int)((array).i_alloc / 1.5) ) {  \
222
        _ARRAY_ALLOC(array, (array).i_size + 5);                            \
223
    }                                                                       \
224
}
225
226
#define ARRAY_FIND(array, p, idx)                                           \
227
  TAB_FIND((array).i_size, (array).p_elems, p, idx)
228
229
#define ARRAY_REMOVE(array,pos)                                             \
230
  do {                                                                      \
231
    if( (array).i_size - (pos) - 1 )                                        \
232
    {                                                                       \
233
        memmove( (array).p_elems + (pos), (array).p_elems + (pos) + 1,      \
234
                 ( (array).i_size - (pos) - 1 ) *sizeof(*(array).p_elems) );\
235
    }                                                                       \
236
    (array).i_size--;                                                       \
237
    _ARRAY_SHRINK(array);                                                   \
238
  } while(0)
239
240
#define ARRAY_VAL(array, pos) array.p_elems[pos]
241
242
#define ARRAY_BSEARCH(array, elem, zetype, key, answer) \
243
    BSEARCH( (array).p_elems, (array).i_size, elem, zetype, key, answer)
244
245
/* append ##item to index variable name to avoid variable shadowing warnings for
246
 * nested loops */
247
#define ARRAY_FOREACH(item, array) \
248
    for (int array_index_##item = 0; \
249
         array_index_##item < (array).i_size && \
250
            ((item) = (array).p_elems[array_index_##item], 1); \
251
         ++array_index_##item)
252
253
254
/************************************************************************
255
 * Dynamic arrays with progressive allocation (Preferred API)
256
 ************************************************************************/
257
typedef struct vlc_array_t
258
{
259
    size_t i_count;
260
    void ** pp_elems;
261
} vlc_array_t;
262
263
static inline void vlc_array_init( vlc_array_t * p_array )
264
55.7k
{
265
55.7k
    p_array->i_count = 0;
266
55.7k
    p_array->pp_elems = NULL;
267
55.7k
}
Unexecuted instantiation: demux-run.c:vlc_array_init
Unexecuted instantiation: common.c:vlc_array_init
Unexecuted instantiation: decoder.c:vlc_array_init
Unexecuted instantiation: core.c:vlc_array_init
Unexecuted instantiation: error.c:vlc_array_init
Unexecuted instantiation: asf.c:vlc_array_init
Unexecuted instantiation: avi.c:vlc_array_init
Unexecuted instantiation: es.c:vlc_array_init
Unexecuted instantiation: flac.c:vlc_array_init
Unexecuted instantiation: xiph_metadata.c:vlc_array_init
Unexecuted instantiation: mp4.c:vlc_array_init
Unexecuted instantiation: heif.c:vlc_array_init
Unexecuted instantiation: sap.c:vlc_array_init
Unexecuted instantiation: subtitle.c:vlc_array_init
Unexecuted instantiation: ttml.c:vlc_array_init
Unexecuted instantiation: encttml.c:vlc_array_init
Unexecuted instantiation: substtml.c:vlc_array_init
Unexecuted instantiation: genttml.c:vlc_array_init
subsvtt.c:vlc_array_init
Line
Count
Source
264
55.6k
{
265
55.6k
    p_array->i_count = 0;
266
55.6k
    p_array->pp_elems = NULL;
267
55.6k
}
Unexecuted instantiation: ogg.c:vlc_array_init
Unexecuted instantiation: matroska_segment.cpp:vlc_array_init(vlc_array_t*)
Unexecuted instantiation: chapters.cpp:vlc_array_init(vlc_array_t*)
Unexecuted instantiation: chapter_command.cpp:vlc_array_init(vlc_array_t*)
Unexecuted instantiation: subsusf.c:vlc_array_init
Unexecuted instantiation: libvlc.c:vlc_array_init
Unexecuted instantiation: media_tree.c:vlc_array_init
Unexecuted instantiation: modules.c:vlc_array_init
Unexecuted instantiation: entry.c:vlc_array_init
dialog.c:vlc_array_init
Line
Count
Source
264
52
{
265
52
    p_array->i_count = 0;
266
52
    p_array->pp_elems = NULL;
267
52
}
Unexecuted instantiation: interface.c:vlc_array_init
Unexecuted instantiation: item.c:vlc_array_init
Unexecuted instantiation: access.c:vlc_array_init
Unexecuted instantiation: demux.c:vlc_array_init
Unexecuted instantiation: input.c:vlc_array_init
Unexecuted instantiation: meta.c:vlc_array_init
Unexecuted instantiation: parse.c:vlc_array_init
Unexecuted instantiation: player.c:vlc_array_init
Unexecuted instantiation: stream.c:vlc_array_init
Unexecuted instantiation: stream_extractor.c:vlc_array_init
Unexecuted instantiation: stream_filter.c:vlc_array_init
Unexecuted instantiation: stream_memory.c:vlc_array_init
Unexecuted instantiation: subtitles.c:vlc_array_init
Unexecuted instantiation: video_output.c:vlc_array_init
Unexecuted instantiation: strings.c:vlc_array_init
Unexecuted instantiation: epg.c:vlc_array_init
Unexecuted instantiation: exit.c:vlc_array_init
Unexecuted instantiation: variables.c:vlc_array_init
Unexecuted instantiation: httpcookies.c:vlc_array_init
Unexecuted instantiation: specific.c:vlc_array_init
Unexecuted instantiation: stream_output.c:vlc_array_init
Unexecuted instantiation: vlm.c:vlc_array_init
Unexecuted instantiation: vlm_event.c:vlc_array_init
Unexecuted instantiation: vlmshell.c:vlc_array_init
Unexecuted instantiation: fetcher.c:vlc_array_init
Unexecuted instantiation: es_out.c:vlc_array_init
Unexecuted instantiation: es_out_timeshift.c:vlc_array_init
268
269
static inline void vlc_array_clear( vlc_array_t * p_array )
270
27.8k
{
271
27.8k
    free( p_array->pp_elems );
272
27.8k
    vlc_array_init( p_array );
273
27.8k
}
Unexecuted instantiation: demux-run.c:vlc_array_clear
Unexecuted instantiation: common.c:vlc_array_clear
Unexecuted instantiation: decoder.c:vlc_array_clear
Unexecuted instantiation: core.c:vlc_array_clear
Unexecuted instantiation: error.c:vlc_array_clear
Unexecuted instantiation: asf.c:vlc_array_clear
Unexecuted instantiation: avi.c:vlc_array_clear
Unexecuted instantiation: es.c:vlc_array_clear
Unexecuted instantiation: flac.c:vlc_array_clear
Unexecuted instantiation: xiph_metadata.c:vlc_array_clear
Unexecuted instantiation: mp4.c:vlc_array_clear
Unexecuted instantiation: heif.c:vlc_array_clear
Unexecuted instantiation: sap.c:vlc_array_clear
Unexecuted instantiation: subtitle.c:vlc_array_clear
Unexecuted instantiation: ttml.c:vlc_array_clear
Unexecuted instantiation: encttml.c:vlc_array_clear
Unexecuted instantiation: substtml.c:vlc_array_clear
Unexecuted instantiation: genttml.c:vlc_array_clear
subsvtt.c:vlc_array_clear
Line
Count
Source
270
27.8k
{
271
27.8k
    free( p_array->pp_elems );
272
27.8k
    vlc_array_init( p_array );
273
27.8k
}
Unexecuted instantiation: ogg.c:vlc_array_clear
Unexecuted instantiation: matroska_segment.cpp:vlc_array_clear(vlc_array_t*)
Unexecuted instantiation: chapters.cpp:vlc_array_clear(vlc_array_t*)
Unexecuted instantiation: chapter_command.cpp:vlc_array_clear(vlc_array_t*)
Unexecuted instantiation: subsusf.c:vlc_array_clear
Unexecuted instantiation: libvlc.c:vlc_array_clear
Unexecuted instantiation: media_tree.c:vlc_array_clear
Unexecuted instantiation: modules.c:vlc_array_clear
Unexecuted instantiation: entry.c:vlc_array_clear
Unexecuted instantiation: dialog.c:vlc_array_clear
Unexecuted instantiation: interface.c:vlc_array_clear
Unexecuted instantiation: item.c:vlc_array_clear
Unexecuted instantiation: access.c:vlc_array_clear
Unexecuted instantiation: demux.c:vlc_array_clear
Unexecuted instantiation: input.c:vlc_array_clear
Unexecuted instantiation: meta.c:vlc_array_clear
Unexecuted instantiation: parse.c:vlc_array_clear
Unexecuted instantiation: player.c:vlc_array_clear
Unexecuted instantiation: stream.c:vlc_array_clear
Unexecuted instantiation: stream_extractor.c:vlc_array_clear
Unexecuted instantiation: stream_filter.c:vlc_array_clear
Unexecuted instantiation: stream_memory.c:vlc_array_clear
Unexecuted instantiation: subtitles.c:vlc_array_clear
Unexecuted instantiation: video_output.c:vlc_array_clear
Unexecuted instantiation: strings.c:vlc_array_clear
Unexecuted instantiation: epg.c:vlc_array_clear
Unexecuted instantiation: exit.c:vlc_array_clear
Unexecuted instantiation: variables.c:vlc_array_clear
Unexecuted instantiation: httpcookies.c:vlc_array_clear
Unexecuted instantiation: specific.c:vlc_array_clear
Unexecuted instantiation: stream_output.c:vlc_array_clear
Unexecuted instantiation: vlm.c:vlc_array_clear
Unexecuted instantiation: vlm_event.c:vlc_array_clear
Unexecuted instantiation: vlmshell.c:vlc_array_clear
Unexecuted instantiation: fetcher.c:vlc_array_clear
Unexecuted instantiation: es_out.c:vlc_array_clear
Unexecuted instantiation: es_out_timeshift.c:vlc_array_clear
274
275
/* Read */
276
static inline size_t vlc_array_count( const vlc_array_t * p_array )
277
68.7k
{
278
68.7k
    return p_array->i_count;
279
68.7k
}
Unexecuted instantiation: demux-run.c:vlc_array_count
Unexecuted instantiation: common.c:vlc_array_count
Unexecuted instantiation: decoder.c:vlc_array_count
Unexecuted instantiation: core.c:vlc_array_count
Unexecuted instantiation: error.c:vlc_array_count
Unexecuted instantiation: asf.c:vlc_array_count
Unexecuted instantiation: avi.c:vlc_array_count
Unexecuted instantiation: es.c:vlc_array_count
Unexecuted instantiation: flac.c:vlc_array_count
Unexecuted instantiation: xiph_metadata.c:vlc_array_count
Unexecuted instantiation: mp4.c:vlc_array_count
Unexecuted instantiation: heif.c:vlc_array_count
Unexecuted instantiation: sap.c:vlc_array_count
Unexecuted instantiation: subtitle.c:vlc_array_count
Unexecuted instantiation: ttml.c:vlc_array_count
Unexecuted instantiation: encttml.c:vlc_array_count
Unexecuted instantiation: substtml.c:vlc_array_count
Unexecuted instantiation: genttml.c:vlc_array_count
subsvtt.c:vlc_array_count
Line
Count
Source
277
68.7k
{
278
68.7k
    return p_array->i_count;
279
68.7k
}
Unexecuted instantiation: ogg.c:vlc_array_count
Unexecuted instantiation: matroska_segment.cpp:vlc_array_count(vlc_array_t const*)
Unexecuted instantiation: chapters.cpp:vlc_array_count(vlc_array_t const*)
Unexecuted instantiation: chapter_command.cpp:vlc_array_count(vlc_array_t const*)
Unexecuted instantiation: subsusf.c:vlc_array_count
Unexecuted instantiation: libvlc.c:vlc_array_count
Unexecuted instantiation: media_tree.c:vlc_array_count
Unexecuted instantiation: modules.c:vlc_array_count
Unexecuted instantiation: entry.c:vlc_array_count
Unexecuted instantiation: dialog.c:vlc_array_count
Unexecuted instantiation: interface.c:vlc_array_count
Unexecuted instantiation: item.c:vlc_array_count
Unexecuted instantiation: access.c:vlc_array_count
Unexecuted instantiation: demux.c:vlc_array_count
Unexecuted instantiation: input.c:vlc_array_count
Unexecuted instantiation: meta.c:vlc_array_count
Unexecuted instantiation: parse.c:vlc_array_count
Unexecuted instantiation: player.c:vlc_array_count
Unexecuted instantiation: stream.c:vlc_array_count
Unexecuted instantiation: stream_extractor.c:vlc_array_count
Unexecuted instantiation: stream_filter.c:vlc_array_count
Unexecuted instantiation: stream_memory.c:vlc_array_count
Unexecuted instantiation: subtitles.c:vlc_array_count
Unexecuted instantiation: video_output.c:vlc_array_count
Unexecuted instantiation: strings.c:vlc_array_count
Unexecuted instantiation: epg.c:vlc_array_count
Unexecuted instantiation: exit.c:vlc_array_count
Unexecuted instantiation: variables.c:vlc_array_count
Unexecuted instantiation: httpcookies.c:vlc_array_count
Unexecuted instantiation: specific.c:vlc_array_count
Unexecuted instantiation: stream_output.c:vlc_array_count
Unexecuted instantiation: vlm.c:vlc_array_count
Unexecuted instantiation: vlm_event.c:vlc_array_count
Unexecuted instantiation: vlmshell.c:vlc_array_count
Unexecuted instantiation: fetcher.c:vlc_array_count
Unexecuted instantiation: es_out.c:vlc_array_count
Unexecuted instantiation: es_out_timeshift.c:vlc_array_count
280
281
#ifndef __cplusplus
282
# define vlc_array_item_at_index(ar, idx) \
283
64.0k
    _Generic((ar), \
284
64.0k
        const vlc_array_t *: ((ar)->pp_elems[idx]), \
285
64.0k
        vlc_array_t *: ((ar)->pp_elems[idx]))
286
#else
287
static inline void *vlc_array_item_at_index( vlc_array_t *ar, size_t idx )
288
0
{
289
0
    return ar->pp_elems[idx];
290
0
}
Unexecuted instantiation: matroska_segment.cpp:vlc_array_item_at_index(vlc_array_t*, unsigned long)
Unexecuted instantiation: chapters.cpp:vlc_array_item_at_index(vlc_array_t*, unsigned long)
Unexecuted instantiation: chapter_command.cpp:vlc_array_item_at_index(vlc_array_t*, unsigned long)
291
292
static inline const void *vlc_array_item_at_index( const vlc_array_t *ar,
293
                                                   size_t idx )
294
0
{
295
0
    return ar->pp_elems[idx];
296
0
}
Unexecuted instantiation: matroska_segment.cpp:vlc_array_item_at_index(vlc_array_t const*, unsigned long)
Unexecuted instantiation: chapters.cpp:vlc_array_item_at_index(vlc_array_t const*, unsigned long)
Unexecuted instantiation: chapter_command.cpp:vlc_array_item_at_index(vlc_array_t const*, unsigned long)
297
#endif
298
299
static inline ssize_t vlc_array_index_of_item( const vlc_array_t *ar,
300
                                               const void *elem )
301
0
{
302
0
    for( size_t i = 0; i < ar->i_count; i++ )
303
0
    {
304
0
        if( ar->pp_elems[i] == elem )
305
0
            return i;
306
0
    }
307
0
    return -1;
308
0
}
Unexecuted instantiation: demux-run.c:vlc_array_index_of_item
Unexecuted instantiation: common.c:vlc_array_index_of_item
Unexecuted instantiation: decoder.c:vlc_array_index_of_item
Unexecuted instantiation: core.c:vlc_array_index_of_item
Unexecuted instantiation: error.c:vlc_array_index_of_item
Unexecuted instantiation: asf.c:vlc_array_index_of_item
Unexecuted instantiation: avi.c:vlc_array_index_of_item
Unexecuted instantiation: es.c:vlc_array_index_of_item
Unexecuted instantiation: flac.c:vlc_array_index_of_item
Unexecuted instantiation: xiph_metadata.c:vlc_array_index_of_item
Unexecuted instantiation: mp4.c:vlc_array_index_of_item
Unexecuted instantiation: heif.c:vlc_array_index_of_item
Unexecuted instantiation: sap.c:vlc_array_index_of_item
Unexecuted instantiation: subtitle.c:vlc_array_index_of_item
Unexecuted instantiation: ttml.c:vlc_array_index_of_item
Unexecuted instantiation: encttml.c:vlc_array_index_of_item
Unexecuted instantiation: substtml.c:vlc_array_index_of_item
Unexecuted instantiation: genttml.c:vlc_array_index_of_item
Unexecuted instantiation: subsvtt.c:vlc_array_index_of_item
Unexecuted instantiation: ogg.c:vlc_array_index_of_item
Unexecuted instantiation: matroska_segment.cpp:vlc_array_index_of_item(vlc_array_t const*, void const*)
Unexecuted instantiation: chapters.cpp:vlc_array_index_of_item(vlc_array_t const*, void const*)
Unexecuted instantiation: chapter_command.cpp:vlc_array_index_of_item(vlc_array_t const*, void const*)
Unexecuted instantiation: subsusf.c:vlc_array_index_of_item
Unexecuted instantiation: libvlc.c:vlc_array_index_of_item
Unexecuted instantiation: media_tree.c:vlc_array_index_of_item
Unexecuted instantiation: modules.c:vlc_array_index_of_item
Unexecuted instantiation: entry.c:vlc_array_index_of_item
Unexecuted instantiation: dialog.c:vlc_array_index_of_item
Unexecuted instantiation: interface.c:vlc_array_index_of_item
Unexecuted instantiation: item.c:vlc_array_index_of_item
Unexecuted instantiation: access.c:vlc_array_index_of_item
Unexecuted instantiation: demux.c:vlc_array_index_of_item
Unexecuted instantiation: input.c:vlc_array_index_of_item
Unexecuted instantiation: meta.c:vlc_array_index_of_item
Unexecuted instantiation: parse.c:vlc_array_index_of_item
Unexecuted instantiation: player.c:vlc_array_index_of_item
Unexecuted instantiation: stream.c:vlc_array_index_of_item
Unexecuted instantiation: stream_extractor.c:vlc_array_index_of_item
Unexecuted instantiation: stream_filter.c:vlc_array_index_of_item
Unexecuted instantiation: stream_memory.c:vlc_array_index_of_item
Unexecuted instantiation: subtitles.c:vlc_array_index_of_item
Unexecuted instantiation: video_output.c:vlc_array_index_of_item
Unexecuted instantiation: strings.c:vlc_array_index_of_item
Unexecuted instantiation: epg.c:vlc_array_index_of_item
Unexecuted instantiation: exit.c:vlc_array_index_of_item
Unexecuted instantiation: variables.c:vlc_array_index_of_item
Unexecuted instantiation: httpcookies.c:vlc_array_index_of_item
Unexecuted instantiation: specific.c:vlc_array_index_of_item
Unexecuted instantiation: stream_output.c:vlc_array_index_of_item
Unexecuted instantiation: vlm.c:vlc_array_index_of_item
Unexecuted instantiation: vlm_event.c:vlc_array_index_of_item
Unexecuted instantiation: vlmshell.c:vlc_array_index_of_item
Unexecuted instantiation: fetcher.c:vlc_array_index_of_item
Unexecuted instantiation: es_out.c:vlc_array_index_of_item
Unexecuted instantiation: es_out_timeshift.c:vlc_array_index_of_item
309
310
/* Write */
311
static inline int vlc_array_insert( vlc_array_t *ar, void *elem, int idx )
312
0
{
313
0
    void **pp = (void **)realloc( ar->pp_elems,
314
0
                                  sizeof( void * ) * (ar->i_count + 1) );
315
0
    if( unlikely(pp == NULL) )
316
0
        return -1;
317
0
318
0
    size_t tail = ar->i_count - idx;
319
0
    if( tail > 0 )
320
0
        memmove( pp + idx + 1, pp + idx, sizeof( void * ) * tail );
321
0
322
0
    pp[idx] = elem;
323
0
    ar->i_count++;
324
0
    ar->pp_elems = pp;
325
0
    return 0;
326
0
}
Unexecuted instantiation: demux-run.c:vlc_array_insert
Unexecuted instantiation: common.c:vlc_array_insert
Unexecuted instantiation: decoder.c:vlc_array_insert
Unexecuted instantiation: core.c:vlc_array_insert
Unexecuted instantiation: error.c:vlc_array_insert
Unexecuted instantiation: asf.c:vlc_array_insert
Unexecuted instantiation: avi.c:vlc_array_insert
Unexecuted instantiation: es.c:vlc_array_insert
Unexecuted instantiation: flac.c:vlc_array_insert
Unexecuted instantiation: xiph_metadata.c:vlc_array_insert
Unexecuted instantiation: mp4.c:vlc_array_insert
Unexecuted instantiation: heif.c:vlc_array_insert
Unexecuted instantiation: sap.c:vlc_array_insert
Unexecuted instantiation: subtitle.c:vlc_array_insert
Unexecuted instantiation: ttml.c:vlc_array_insert
Unexecuted instantiation: encttml.c:vlc_array_insert
Unexecuted instantiation: substtml.c:vlc_array_insert
Unexecuted instantiation: genttml.c:vlc_array_insert
Unexecuted instantiation: subsvtt.c:vlc_array_insert
Unexecuted instantiation: ogg.c:vlc_array_insert
Unexecuted instantiation: matroska_segment.cpp:vlc_array_insert(vlc_array_t*, void*, int)
Unexecuted instantiation: chapters.cpp:vlc_array_insert(vlc_array_t*, void*, int)
Unexecuted instantiation: chapter_command.cpp:vlc_array_insert(vlc_array_t*, void*, int)
Unexecuted instantiation: subsusf.c:vlc_array_insert
Unexecuted instantiation: libvlc.c:vlc_array_insert
Unexecuted instantiation: media_tree.c:vlc_array_insert
Unexecuted instantiation: modules.c:vlc_array_insert
Unexecuted instantiation: entry.c:vlc_array_insert
Unexecuted instantiation: dialog.c:vlc_array_insert
Unexecuted instantiation: interface.c:vlc_array_insert
Unexecuted instantiation: item.c:vlc_array_insert
Unexecuted instantiation: access.c:vlc_array_insert
Unexecuted instantiation: demux.c:vlc_array_insert
Unexecuted instantiation: input.c:vlc_array_insert
Unexecuted instantiation: meta.c:vlc_array_insert
Unexecuted instantiation: parse.c:vlc_array_insert
Unexecuted instantiation: player.c:vlc_array_insert
Unexecuted instantiation: stream.c:vlc_array_insert
Unexecuted instantiation: stream_extractor.c:vlc_array_insert
Unexecuted instantiation: stream_filter.c:vlc_array_insert
Unexecuted instantiation: stream_memory.c:vlc_array_insert
Unexecuted instantiation: subtitles.c:vlc_array_insert
Unexecuted instantiation: video_output.c:vlc_array_insert
Unexecuted instantiation: strings.c:vlc_array_insert
Unexecuted instantiation: epg.c:vlc_array_insert
Unexecuted instantiation: exit.c:vlc_array_insert
Unexecuted instantiation: variables.c:vlc_array_insert
Unexecuted instantiation: httpcookies.c:vlc_array_insert
Unexecuted instantiation: specific.c:vlc_array_insert
Unexecuted instantiation: stream_output.c:vlc_array_insert
Unexecuted instantiation: vlm.c:vlc_array_insert
Unexecuted instantiation: vlm_event.c:vlc_array_insert
Unexecuted instantiation: vlmshell.c:vlc_array_insert
Unexecuted instantiation: fetcher.c:vlc_array_insert
Unexecuted instantiation: es_out.c:vlc_array_insert
Unexecuted instantiation: es_out_timeshift.c:vlc_array_insert
327
328
static inline void vlc_array_insert_or_abort( vlc_array_t *ar, void *elem, int idx )
329
0
{
330
0
    if( vlc_array_insert( ar, elem, idx ) )
331
0
        abort();
332
0
}
Unexecuted instantiation: demux-run.c:vlc_array_insert_or_abort
Unexecuted instantiation: common.c:vlc_array_insert_or_abort
Unexecuted instantiation: decoder.c:vlc_array_insert_or_abort
Unexecuted instantiation: core.c:vlc_array_insert_or_abort
Unexecuted instantiation: error.c:vlc_array_insert_or_abort
Unexecuted instantiation: asf.c:vlc_array_insert_or_abort
Unexecuted instantiation: avi.c:vlc_array_insert_or_abort
Unexecuted instantiation: es.c:vlc_array_insert_or_abort
Unexecuted instantiation: flac.c:vlc_array_insert_or_abort
Unexecuted instantiation: xiph_metadata.c:vlc_array_insert_or_abort
Unexecuted instantiation: mp4.c:vlc_array_insert_or_abort
Unexecuted instantiation: heif.c:vlc_array_insert_or_abort
Unexecuted instantiation: sap.c:vlc_array_insert_or_abort
Unexecuted instantiation: subtitle.c:vlc_array_insert_or_abort
Unexecuted instantiation: ttml.c:vlc_array_insert_or_abort
Unexecuted instantiation: encttml.c:vlc_array_insert_or_abort
Unexecuted instantiation: substtml.c:vlc_array_insert_or_abort
Unexecuted instantiation: genttml.c:vlc_array_insert_or_abort
Unexecuted instantiation: subsvtt.c:vlc_array_insert_or_abort
Unexecuted instantiation: ogg.c:vlc_array_insert_or_abort
Unexecuted instantiation: matroska_segment.cpp:vlc_array_insert_or_abort(vlc_array_t*, void*, int)
Unexecuted instantiation: chapters.cpp:vlc_array_insert_or_abort(vlc_array_t*, void*, int)
Unexecuted instantiation: chapter_command.cpp:vlc_array_insert_or_abort(vlc_array_t*, void*, int)
Unexecuted instantiation: subsusf.c:vlc_array_insert_or_abort
Unexecuted instantiation: libvlc.c:vlc_array_insert_or_abort
Unexecuted instantiation: media_tree.c:vlc_array_insert_or_abort
Unexecuted instantiation: modules.c:vlc_array_insert_or_abort
Unexecuted instantiation: entry.c:vlc_array_insert_or_abort
Unexecuted instantiation: dialog.c:vlc_array_insert_or_abort
Unexecuted instantiation: interface.c:vlc_array_insert_or_abort
Unexecuted instantiation: item.c:vlc_array_insert_or_abort
Unexecuted instantiation: access.c:vlc_array_insert_or_abort
Unexecuted instantiation: demux.c:vlc_array_insert_or_abort
Unexecuted instantiation: input.c:vlc_array_insert_or_abort
Unexecuted instantiation: meta.c:vlc_array_insert_or_abort
Unexecuted instantiation: parse.c:vlc_array_insert_or_abort
Unexecuted instantiation: player.c:vlc_array_insert_or_abort
Unexecuted instantiation: stream.c:vlc_array_insert_or_abort
Unexecuted instantiation: stream_extractor.c:vlc_array_insert_or_abort
Unexecuted instantiation: stream_filter.c:vlc_array_insert_or_abort
Unexecuted instantiation: stream_memory.c:vlc_array_insert_or_abort
Unexecuted instantiation: subtitles.c:vlc_array_insert_or_abort
Unexecuted instantiation: video_output.c:vlc_array_insert_or_abort
Unexecuted instantiation: strings.c:vlc_array_insert_or_abort
Unexecuted instantiation: epg.c:vlc_array_insert_or_abort
Unexecuted instantiation: exit.c:vlc_array_insert_or_abort
Unexecuted instantiation: variables.c:vlc_array_insert_or_abort
Unexecuted instantiation: httpcookies.c:vlc_array_insert_or_abort
Unexecuted instantiation: specific.c:vlc_array_insert_or_abort
Unexecuted instantiation: stream_output.c:vlc_array_insert_or_abort
Unexecuted instantiation: vlm.c:vlc_array_insert_or_abort
Unexecuted instantiation: vlm_event.c:vlc_array_insert_or_abort
Unexecuted instantiation: vlmshell.c:vlc_array_insert_or_abort
Unexecuted instantiation: fetcher.c:vlc_array_insert_or_abort
Unexecuted instantiation: es_out.c:vlc_array_insert_or_abort
Unexecuted instantiation: es_out_timeshift.c:vlc_array_insert_or_abort
333
334
static inline int vlc_array_append( vlc_array_t *ar, void *elem )
335
63.1k
{
336
63.1k
    void **pp = (void **)realloc( ar->pp_elems,
337
63.1k
                                  sizeof( void * ) * (ar->i_count + 1) );
338
63.1k
    if( unlikely(pp == NULL) )
339
0
        return -1;
340
341
63.1k
    pp[ar->i_count++] = elem;
342
63.1k
    ar->pp_elems = pp;
343
63.1k
    return 0;
344
63.1k
}
Unexecuted instantiation: demux-run.c:vlc_array_append
Unexecuted instantiation: common.c:vlc_array_append
Unexecuted instantiation: decoder.c:vlc_array_append
Unexecuted instantiation: core.c:vlc_array_append
Unexecuted instantiation: error.c:vlc_array_append
Unexecuted instantiation: asf.c:vlc_array_append
Unexecuted instantiation: avi.c:vlc_array_append
Unexecuted instantiation: es.c:vlc_array_append
Unexecuted instantiation: flac.c:vlc_array_append
Unexecuted instantiation: xiph_metadata.c:vlc_array_append
Unexecuted instantiation: mp4.c:vlc_array_append
Unexecuted instantiation: heif.c:vlc_array_append
Unexecuted instantiation: sap.c:vlc_array_append
Unexecuted instantiation: subtitle.c:vlc_array_append
Unexecuted instantiation: ttml.c:vlc_array_append
Unexecuted instantiation: encttml.c:vlc_array_append
Unexecuted instantiation: substtml.c:vlc_array_append
Unexecuted instantiation: genttml.c:vlc_array_append
subsvtt.c:vlc_array_append
Line
Count
Source
335
63.1k
{
336
63.1k
    void **pp = (void **)realloc( ar->pp_elems,
337
63.1k
                                  sizeof( void * ) * (ar->i_count + 1) );
338
63.1k
    if( unlikely(pp == NULL) )
339
0
        return -1;
340
341
63.1k
    pp[ar->i_count++] = elem;
342
63.1k
    ar->pp_elems = pp;
343
63.1k
    return 0;
344
63.1k
}
Unexecuted instantiation: ogg.c:vlc_array_append
Unexecuted instantiation: matroska_segment.cpp:vlc_array_append(vlc_array_t*, void*)
Unexecuted instantiation: chapters.cpp:vlc_array_append(vlc_array_t*, void*)
Unexecuted instantiation: chapter_command.cpp:vlc_array_append(vlc_array_t*, void*)
Unexecuted instantiation: subsusf.c:vlc_array_append
Unexecuted instantiation: libvlc.c:vlc_array_append
Unexecuted instantiation: media_tree.c:vlc_array_append
Unexecuted instantiation: modules.c:vlc_array_append
Unexecuted instantiation: entry.c:vlc_array_append
Unexecuted instantiation: dialog.c:vlc_array_append
Unexecuted instantiation: interface.c:vlc_array_append
Unexecuted instantiation: item.c:vlc_array_append
Unexecuted instantiation: access.c:vlc_array_append
Unexecuted instantiation: demux.c:vlc_array_append
Unexecuted instantiation: input.c:vlc_array_append
Unexecuted instantiation: meta.c:vlc_array_append
Unexecuted instantiation: parse.c:vlc_array_append
Unexecuted instantiation: player.c:vlc_array_append
Unexecuted instantiation: stream.c:vlc_array_append
Unexecuted instantiation: stream_extractor.c:vlc_array_append
Unexecuted instantiation: stream_filter.c:vlc_array_append
Unexecuted instantiation: stream_memory.c:vlc_array_append
Unexecuted instantiation: subtitles.c:vlc_array_append
Unexecuted instantiation: video_output.c:vlc_array_append
Unexecuted instantiation: strings.c:vlc_array_append
Unexecuted instantiation: epg.c:vlc_array_append
Unexecuted instantiation: exit.c:vlc_array_append
Unexecuted instantiation: variables.c:vlc_array_append
Unexecuted instantiation: httpcookies.c:vlc_array_append
Unexecuted instantiation: specific.c:vlc_array_append
Unexecuted instantiation: stream_output.c:vlc_array_append
Unexecuted instantiation: vlm.c:vlc_array_append
Unexecuted instantiation: vlm_event.c:vlc_array_append
Unexecuted instantiation: vlmshell.c:vlc_array_append
Unexecuted instantiation: fetcher.c:vlc_array_append
Unexecuted instantiation: es_out.c:vlc_array_append
Unexecuted instantiation: es_out_timeshift.c:vlc_array_append
345
346
static inline void vlc_array_append_or_abort( vlc_array_t *ar, void *elem )
347
0
{
348
0
    if( vlc_array_append( ar, elem ) != 0 )
349
0
        abort();
350
0
}
Unexecuted instantiation: demux-run.c:vlc_array_append_or_abort
Unexecuted instantiation: common.c:vlc_array_append_or_abort
Unexecuted instantiation: decoder.c:vlc_array_append_or_abort
Unexecuted instantiation: core.c:vlc_array_append_or_abort
Unexecuted instantiation: error.c:vlc_array_append_or_abort
Unexecuted instantiation: asf.c:vlc_array_append_or_abort
Unexecuted instantiation: avi.c:vlc_array_append_or_abort
Unexecuted instantiation: es.c:vlc_array_append_or_abort
Unexecuted instantiation: flac.c:vlc_array_append_or_abort
Unexecuted instantiation: xiph_metadata.c:vlc_array_append_or_abort
Unexecuted instantiation: mp4.c:vlc_array_append_or_abort
Unexecuted instantiation: heif.c:vlc_array_append_or_abort
Unexecuted instantiation: sap.c:vlc_array_append_or_abort
Unexecuted instantiation: subtitle.c:vlc_array_append_or_abort
Unexecuted instantiation: ttml.c:vlc_array_append_or_abort
Unexecuted instantiation: encttml.c:vlc_array_append_or_abort
Unexecuted instantiation: substtml.c:vlc_array_append_or_abort
Unexecuted instantiation: genttml.c:vlc_array_append_or_abort
Unexecuted instantiation: subsvtt.c:vlc_array_append_or_abort
Unexecuted instantiation: ogg.c:vlc_array_append_or_abort
Unexecuted instantiation: matroska_segment.cpp:vlc_array_append_or_abort(vlc_array_t*, void*)
Unexecuted instantiation: chapters.cpp:vlc_array_append_or_abort(vlc_array_t*, void*)
Unexecuted instantiation: chapter_command.cpp:vlc_array_append_or_abort(vlc_array_t*, void*)
Unexecuted instantiation: subsusf.c:vlc_array_append_or_abort
Unexecuted instantiation: libvlc.c:vlc_array_append_or_abort
Unexecuted instantiation: media_tree.c:vlc_array_append_or_abort
Unexecuted instantiation: modules.c:vlc_array_append_or_abort
Unexecuted instantiation: entry.c:vlc_array_append_or_abort
Unexecuted instantiation: dialog.c:vlc_array_append_or_abort
Unexecuted instantiation: interface.c:vlc_array_append_or_abort
Unexecuted instantiation: item.c:vlc_array_append_or_abort
Unexecuted instantiation: access.c:vlc_array_append_or_abort
Unexecuted instantiation: demux.c:vlc_array_append_or_abort
Unexecuted instantiation: input.c:vlc_array_append_or_abort
Unexecuted instantiation: meta.c:vlc_array_append_or_abort
Unexecuted instantiation: parse.c:vlc_array_append_or_abort
Unexecuted instantiation: player.c:vlc_array_append_or_abort
Unexecuted instantiation: stream.c:vlc_array_append_or_abort
Unexecuted instantiation: stream_extractor.c:vlc_array_append_or_abort
Unexecuted instantiation: stream_filter.c:vlc_array_append_or_abort
Unexecuted instantiation: stream_memory.c:vlc_array_append_or_abort
Unexecuted instantiation: subtitles.c:vlc_array_append_or_abort
Unexecuted instantiation: video_output.c:vlc_array_append_or_abort
Unexecuted instantiation: strings.c:vlc_array_append_or_abort
Unexecuted instantiation: epg.c:vlc_array_append_or_abort
Unexecuted instantiation: exit.c:vlc_array_append_or_abort
Unexecuted instantiation: variables.c:vlc_array_append_or_abort
Unexecuted instantiation: httpcookies.c:vlc_array_append_or_abort
Unexecuted instantiation: specific.c:vlc_array_append_or_abort
Unexecuted instantiation: stream_output.c:vlc_array_append_or_abort
Unexecuted instantiation: vlm.c:vlc_array_append_or_abort
Unexecuted instantiation: vlm_event.c:vlc_array_append_or_abort
Unexecuted instantiation: vlmshell.c:vlc_array_append_or_abort
Unexecuted instantiation: fetcher.c:vlc_array_append_or_abort
Unexecuted instantiation: es_out.c:vlc_array_append_or_abort
Unexecuted instantiation: es_out_timeshift.c:vlc_array_append_or_abort
351
352
static inline void vlc_array_remove( vlc_array_t *ar, size_t idx )
353
0
{
354
0
    void **pp = ar->pp_elems;
355
0
    size_t tail = ar->i_count - idx - 1;
356
357
0
    if( tail > 0 )
358
0
        memmove( pp + idx, pp + idx + 1, sizeof( void * ) * tail );
359
360
0
    ar->i_count--;
361
362
0
    if( ar->i_count > 0 )
363
0
    {
364
0
        pp = (void **)realloc( pp, sizeof( void * ) * ar->i_count );
365
0
        if( likely(pp != NULL) )
366
0
            ar->pp_elems = pp;
367
0
    }
368
0
    else
369
0
    {
370
0
        free( pp );
371
0
        ar->pp_elems = NULL;
372
0
    }
373
0
}
Unexecuted instantiation: demux-run.c:vlc_array_remove
Unexecuted instantiation: common.c:vlc_array_remove
Unexecuted instantiation: decoder.c:vlc_array_remove
Unexecuted instantiation: core.c:vlc_array_remove
Unexecuted instantiation: error.c:vlc_array_remove
Unexecuted instantiation: asf.c:vlc_array_remove
Unexecuted instantiation: avi.c:vlc_array_remove
Unexecuted instantiation: es.c:vlc_array_remove
Unexecuted instantiation: flac.c:vlc_array_remove
Unexecuted instantiation: xiph_metadata.c:vlc_array_remove
Unexecuted instantiation: mp4.c:vlc_array_remove
Unexecuted instantiation: heif.c:vlc_array_remove
Unexecuted instantiation: sap.c:vlc_array_remove
Unexecuted instantiation: subtitle.c:vlc_array_remove
Unexecuted instantiation: ttml.c:vlc_array_remove
Unexecuted instantiation: encttml.c:vlc_array_remove
Unexecuted instantiation: substtml.c:vlc_array_remove
Unexecuted instantiation: genttml.c:vlc_array_remove
Unexecuted instantiation: subsvtt.c:vlc_array_remove
Unexecuted instantiation: ogg.c:vlc_array_remove
Unexecuted instantiation: matroska_segment.cpp:vlc_array_remove(vlc_array_t*, unsigned long)
Unexecuted instantiation: chapters.cpp:vlc_array_remove(vlc_array_t*, unsigned long)
Unexecuted instantiation: chapter_command.cpp:vlc_array_remove(vlc_array_t*, unsigned long)
Unexecuted instantiation: subsusf.c:vlc_array_remove
Unexecuted instantiation: libvlc.c:vlc_array_remove
Unexecuted instantiation: media_tree.c:vlc_array_remove
Unexecuted instantiation: modules.c:vlc_array_remove
Unexecuted instantiation: entry.c:vlc_array_remove
Unexecuted instantiation: dialog.c:vlc_array_remove
Unexecuted instantiation: interface.c:vlc_array_remove
Unexecuted instantiation: item.c:vlc_array_remove
Unexecuted instantiation: access.c:vlc_array_remove
Unexecuted instantiation: demux.c:vlc_array_remove
Unexecuted instantiation: input.c:vlc_array_remove
Unexecuted instantiation: meta.c:vlc_array_remove
Unexecuted instantiation: parse.c:vlc_array_remove
Unexecuted instantiation: player.c:vlc_array_remove
Unexecuted instantiation: stream.c:vlc_array_remove
Unexecuted instantiation: stream_extractor.c:vlc_array_remove
Unexecuted instantiation: stream_filter.c:vlc_array_remove
Unexecuted instantiation: stream_memory.c:vlc_array_remove
Unexecuted instantiation: subtitles.c:vlc_array_remove
Unexecuted instantiation: video_output.c:vlc_array_remove
Unexecuted instantiation: strings.c:vlc_array_remove
Unexecuted instantiation: epg.c:vlc_array_remove
Unexecuted instantiation: exit.c:vlc_array_remove
Unexecuted instantiation: variables.c:vlc_array_remove
Unexecuted instantiation: httpcookies.c:vlc_array_remove
Unexecuted instantiation: specific.c:vlc_array_remove
Unexecuted instantiation: stream_output.c:vlc_array_remove
Unexecuted instantiation: vlm.c:vlc_array_remove
Unexecuted instantiation: vlm_event.c:vlc_array_remove
Unexecuted instantiation: vlmshell.c:vlc_array_remove
Unexecuted instantiation: fetcher.c:vlc_array_remove
Unexecuted instantiation: es_out.c:vlc_array_remove
Unexecuted instantiation: es_out_timeshift.c:vlc_array_remove
374
375
376
/************************************************************************
377
 * Dictionaries
378
 ************************************************************************/
379
380
/* This function is not intended to be crypto-secure, we only want it to be
381
 * fast and not suck too much. This one is pretty fast and did 0 collisions
382
 * in wenglish's dictionary.
383
 */
384
static inline size_t DictHash(const char *psz_string, size_t hashsize)
385
3.32M
{
386
3.32M
    uint64_t i_hash = 0;
387
3.32M
    if( psz_string )
388
3.32M
    {
389
37.9M
        while( *psz_string )
390
34.5M
        {
391
34.5M
            i_hash += *psz_string++;
392
34.5M
            i_hash += i_hash << 10;
393
34.5M
            i_hash ^= i_hash >> 8;
394
34.5M
        }
395
3.32M
    }
396
3.32M
    return i_hash % hashsize;
397
3.32M
}
Unexecuted instantiation: demux-run.c:DictHash
Unexecuted instantiation: common.c:DictHash
Unexecuted instantiation: decoder.c:DictHash
Unexecuted instantiation: core.c:DictHash
Unexecuted instantiation: error.c:DictHash
Unexecuted instantiation: asf.c:DictHash
Unexecuted instantiation: avi.c:DictHash
Unexecuted instantiation: es.c:DictHash
Unexecuted instantiation: flac.c:DictHash
Unexecuted instantiation: xiph_metadata.c:DictHash
Unexecuted instantiation: mp4.c:DictHash
Unexecuted instantiation: heif.c:DictHash
Unexecuted instantiation: sap.c:DictHash
Unexecuted instantiation: subtitle.c:DictHash
ttml.c:DictHash
Line
Count
Source
385
1.97M
{
386
1.97M
    uint64_t i_hash = 0;
387
1.97M
    if( psz_string )
388
1.97M
    {
389
13.4M
        while( *psz_string )
390
11.5M
        {
391
11.5M
            i_hash += *psz_string++;
392
11.5M
            i_hash += i_hash << 10;
393
11.5M
            i_hash ^= i_hash >> 8;
394
11.5M
        }
395
1.97M
    }
396
1.97M
    return i_hash % hashsize;
397
1.97M
}
Unexecuted instantiation: encttml.c:DictHash
substtml.c:DictHash
Line
Count
Source
385
1.33M
{
386
1.33M
    uint64_t i_hash = 0;
387
1.33M
    if( psz_string )
388
1.33M
    {
389
24.1M
        while( *psz_string )
390
22.8M
        {
391
22.8M
            i_hash += *psz_string++;
392
22.8M
            i_hash += i_hash << 10;
393
22.8M
            i_hash ^= i_hash >> 8;
394
22.8M
        }
395
1.33M
    }
396
1.33M
    return i_hash % hashsize;
397
1.33M
}
Unexecuted instantiation: genttml.c:DictHash
Unexecuted instantiation: subsvtt.c:DictHash
Unexecuted instantiation: ogg.c:DictHash
Unexecuted instantiation: matroska_segment.cpp:DictHash(char const*, unsigned long)
Unexecuted instantiation: chapters.cpp:DictHash(char const*, unsigned long)
Unexecuted instantiation: chapter_command.cpp:DictHash(char const*, unsigned long)
Unexecuted instantiation: subsusf.c:DictHash
Unexecuted instantiation: libvlc.c:DictHash
Unexecuted instantiation: media_tree.c:DictHash
Unexecuted instantiation: modules.c:DictHash
Unexecuted instantiation: entry.c:DictHash
Unexecuted instantiation: dialog.c:DictHash
Unexecuted instantiation: interface.c:DictHash
Unexecuted instantiation: item.c:DictHash
Unexecuted instantiation: access.c:DictHash
Unexecuted instantiation: demux.c:DictHash
Unexecuted instantiation: input.c:DictHash
meta.c:DictHash
Line
Count
Source
385
15.2k
{
386
15.2k
    uint64_t i_hash = 0;
387
15.2k
    if( psz_string )
388
15.2k
    {
389
221k
        while( *psz_string )
390
205k
        {
391
205k
            i_hash += *psz_string++;
392
205k
            i_hash += i_hash << 10;
393
205k
            i_hash ^= i_hash >> 8;
394
205k
        }
395
15.2k
    }
396
15.2k
    return i_hash % hashsize;
397
15.2k
}
Unexecuted instantiation: parse.c:DictHash
Unexecuted instantiation: player.c:DictHash
Unexecuted instantiation: stream.c:DictHash
Unexecuted instantiation: stream_extractor.c:DictHash
Unexecuted instantiation: stream_filter.c:DictHash
Unexecuted instantiation: stream_memory.c:DictHash
Unexecuted instantiation: subtitles.c:DictHash
Unexecuted instantiation: video_output.c:DictHash
Unexecuted instantiation: strings.c:DictHash
Unexecuted instantiation: epg.c:DictHash
Unexecuted instantiation: exit.c:DictHash
Unexecuted instantiation: variables.c:DictHash
Unexecuted instantiation: httpcookies.c:DictHash
Unexecuted instantiation: specific.c:DictHash
Unexecuted instantiation: stream_output.c:DictHash
Unexecuted instantiation: vlm.c:DictHash
Unexecuted instantiation: vlm_event.c:DictHash
Unexecuted instantiation: vlmshell.c:DictHash
Unexecuted instantiation: fetcher.c:DictHash
Unexecuted instantiation: es_out.c:DictHash
Unexecuted instantiation: es_out_timeshift.c:DictHash
398
399
typedef struct vlc_dictionary_entry_t
400
{
401
    char *   psz_key;
402
    void *   p_value;
403
    struct vlc_dictionary_entry_t * p_next;
404
} vlc_dictionary_entry_t;
405
406
typedef struct vlc_dictionary_t
407
{
408
    size_t i_size;
409
    vlc_dictionary_entry_t ** p_entries;
410
} vlc_dictionary_t;
411
412
static void * const kVLCDictionaryNotFound = NULL;
413
414
static inline void vlc_dictionary_init(vlc_dictionary_t * p_dict, size_t i_size)
415
1.39M
{
416
1.39M
    p_dict->p_entries = NULL;
417
418
1.39M
    if( i_size > 0 )
419
662k
    {
420
662k
        p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) );
421
662k
        if( !p_dict->p_entries )
422
0
            i_size = 0;
423
662k
    }
424
1.39M
    p_dict->i_size = i_size;
425
1.39M
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_init
Unexecuted instantiation: common.c:vlc_dictionary_init
Unexecuted instantiation: decoder.c:vlc_dictionary_init
Unexecuted instantiation: core.c:vlc_dictionary_init
Unexecuted instantiation: error.c:vlc_dictionary_init
Unexecuted instantiation: asf.c:vlc_dictionary_init
Unexecuted instantiation: avi.c:vlc_dictionary_init
Unexecuted instantiation: es.c:vlc_dictionary_init
Unexecuted instantiation: flac.c:vlc_dictionary_init
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_init
Unexecuted instantiation: mp4.c:vlc_dictionary_init
Unexecuted instantiation: heif.c:vlc_dictionary_init
Unexecuted instantiation: sap.c:vlc_dictionary_init
Unexecuted instantiation: subtitle.c:vlc_dictionary_init
ttml.c:vlc_dictionary_init
Line
Count
Source
415
1.20M
{
416
1.20M
    p_dict->p_entries = NULL;
417
418
1.20M
    if( i_size > 0 )
419
557k
    {
420
557k
        p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) );
421
557k
        if( !p_dict->p_entries )
422
0
            i_size = 0;
423
557k
    }
424
1.20M
    p_dict->i_size = i_size;
425
1.20M
}
Unexecuted instantiation: encttml.c:vlc_dictionary_init
substtml.c:vlc_dictionary_init
Line
Count
Source
415
168k
{
416
168k
    p_dict->p_entries = NULL;
417
418
168k
    if( i_size > 0 )
419
101k
    {
420
101k
        p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) );
421
101k
        if( !p_dict->p_entries )
422
0
            i_size = 0;
423
101k
    }
424
168k
    p_dict->i_size = i_size;
425
168k
}
Unexecuted instantiation: genttml.c:vlc_dictionary_init
Unexecuted instantiation: subsvtt.c:vlc_dictionary_init
Unexecuted instantiation: ogg.c:vlc_dictionary_init
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_init(vlc_dictionary_t*, unsigned long)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_init(vlc_dictionary_t*, unsigned long)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_init(vlc_dictionary_t*, unsigned long)
Unexecuted instantiation: subsusf.c:vlc_dictionary_init
Unexecuted instantiation: libvlc.c:vlc_dictionary_init
Unexecuted instantiation: media_tree.c:vlc_dictionary_init
Unexecuted instantiation: modules.c:vlc_dictionary_init
Unexecuted instantiation: entry.c:vlc_dictionary_init
Unexecuted instantiation: dialog.c:vlc_dictionary_init
Unexecuted instantiation: interface.c:vlc_dictionary_init
Unexecuted instantiation: item.c:vlc_dictionary_init
Unexecuted instantiation: access.c:vlc_dictionary_init
Unexecuted instantiation: demux.c:vlc_dictionary_init
Unexecuted instantiation: input.c:vlc_dictionary_init
meta.c:vlc_dictionary_init
Line
Count
Source
415
22.2k
{
416
22.2k
    p_dict->p_entries = NULL;
417
418
22.2k
    if( i_size > 0 )
419
3.25k
    {
420
3.25k
        p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) );
421
3.25k
        if( !p_dict->p_entries )
422
0
            i_size = 0;
423
3.25k
    }
424
22.2k
    p_dict->i_size = i_size;
425
22.2k
}
Unexecuted instantiation: parse.c:vlc_dictionary_init
Unexecuted instantiation: player.c:vlc_dictionary_init
Unexecuted instantiation: stream.c:vlc_dictionary_init
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_init
Unexecuted instantiation: stream_filter.c:vlc_dictionary_init
Unexecuted instantiation: stream_memory.c:vlc_dictionary_init
Unexecuted instantiation: subtitles.c:vlc_dictionary_init
Unexecuted instantiation: video_output.c:vlc_dictionary_init
Unexecuted instantiation: strings.c:vlc_dictionary_init
Unexecuted instantiation: epg.c:vlc_dictionary_init
Unexecuted instantiation: exit.c:vlc_dictionary_init
Unexecuted instantiation: variables.c:vlc_dictionary_init
Unexecuted instantiation: httpcookies.c:vlc_dictionary_init
Unexecuted instantiation: specific.c:vlc_dictionary_init
Unexecuted instantiation: stream_output.c:vlc_dictionary_init
Unexecuted instantiation: vlm.c:vlc_dictionary_init
Unexecuted instantiation: vlm_event.c:vlc_dictionary_init
Unexecuted instantiation: vlmshell.c:vlc_dictionary_init
Unexecuted instantiation: fetcher.c:vlc_dictionary_init
Unexecuted instantiation: es_out.c:vlc_dictionary_init
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_init
426
427
static inline void vlc_dictionary_clear( vlc_dictionary_t * p_dict,
428
                                         void ( * pf_free )( void * p_data, void * p_obj ),
429
                                         void * p_obj )
430
819k
{
431
819k
    if( p_dict->p_entries )
432
662k
    {
433
1.71M
        for (size_t i = 0; i < p_dict->i_size; i++)
434
1.04M
        {
435
1.04M
            vlc_dictionary_entry_t * p_current, * p_next;
436
1.04M
            p_current = p_dict->p_entries[i];
437
2.83M
            while( p_current )
438
1.78M
            {
439
1.78M
                p_next = p_current->p_next;
440
1.78M
                if( pf_free != NULL )
441
1.06M
                    ( * pf_free )( p_current->p_value, p_obj );
442
1.78M
                free( p_current->psz_key );
443
1.78M
                free( p_current );
444
1.78M
                p_current = p_next;
445
1.78M
            }
446
1.04M
        }
447
662k
        free( p_dict->p_entries );
448
662k
        p_dict->p_entries = NULL;
449
662k
    }
450
819k
    p_dict->i_size = 0;
451
819k
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_clear
Unexecuted instantiation: common.c:vlc_dictionary_clear
Unexecuted instantiation: decoder.c:vlc_dictionary_clear
Unexecuted instantiation: core.c:vlc_dictionary_clear
Unexecuted instantiation: error.c:vlc_dictionary_clear
Unexecuted instantiation: asf.c:vlc_dictionary_clear
Unexecuted instantiation: avi.c:vlc_dictionary_clear
Unexecuted instantiation: es.c:vlc_dictionary_clear
Unexecuted instantiation: flac.c:vlc_dictionary_clear
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_clear
Unexecuted instantiation: mp4.c:vlc_dictionary_clear
Unexecuted instantiation: heif.c:vlc_dictionary_clear
Unexecuted instantiation: sap.c:vlc_dictionary_clear
Unexecuted instantiation: subtitle.c:vlc_dictionary_clear
ttml.c:vlc_dictionary_clear
Line
Count
Source
430
674k
{
431
674k
    if( p_dict->p_entries )
432
557k
    {
433
1.21M
        for (size_t i = 0; i < p_dict->i_size; i++)
434
657k
        {
435
657k
            vlc_dictionary_entry_t * p_current, * p_next;
436
657k
            p_current = p_dict->p_entries[i];
437
1.82M
            while( p_current )
438
1.16M
            {
439
1.16M
                p_next = p_current->p_next;
440
1.16M
                if( pf_free != NULL )
441
1.05M
                    ( * pf_free )( p_current->p_value, p_obj );
442
1.16M
                free( p_current->psz_key );
443
1.16M
                free( p_current );
444
1.16M
                p_current = p_next;
445
1.16M
            }
446
657k
        }
447
557k
        free( p_dict->p_entries );
448
557k
        p_dict->p_entries = NULL;
449
557k
    }
450
674k
    p_dict->i_size = 0;
451
674k
}
Unexecuted instantiation: encttml.c:vlc_dictionary_clear
substtml.c:vlc_dictionary_clear
Line
Count
Source
430
125k
{
431
125k
    if( p_dict->p_entries )
432
101k
    {
433
487k
        for (size_t i = 0; i < p_dict->i_size; i++)
434
385k
        {
435
385k
            vlc_dictionary_entry_t * p_current, * p_next;
436
385k
            p_current = p_dict->p_entries[i];
437
1.00M
            while( p_current )
438
615k
            {
439
615k
                p_next = p_current->p_next;
440
615k
                if( pf_free != NULL )
441
0
                    ( * pf_free )( p_current->p_value, p_obj );
442
615k
                free( p_current->psz_key );
443
615k
                free( p_current );
444
615k
                p_current = p_next;
445
615k
            }
446
385k
        }
447
101k
        free( p_dict->p_entries );
448
101k
        p_dict->p_entries = NULL;
449
101k
    }
450
125k
    p_dict->i_size = 0;
451
125k
}
Unexecuted instantiation: genttml.c:vlc_dictionary_clear
Unexecuted instantiation: subsvtt.c:vlc_dictionary_clear
Unexecuted instantiation: ogg.c:vlc_dictionary_clear
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_clear(vlc_dictionary_t*, void (*)(void*, void*), void*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_clear(vlc_dictionary_t*, void (*)(void*, void*), void*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_clear(vlc_dictionary_t*, void (*)(void*, void*), void*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_clear
Unexecuted instantiation: libvlc.c:vlc_dictionary_clear
Unexecuted instantiation: media_tree.c:vlc_dictionary_clear
Unexecuted instantiation: modules.c:vlc_dictionary_clear
Unexecuted instantiation: entry.c:vlc_dictionary_clear
Unexecuted instantiation: dialog.c:vlc_dictionary_clear
Unexecuted instantiation: interface.c:vlc_dictionary_clear
Unexecuted instantiation: item.c:vlc_dictionary_clear
Unexecuted instantiation: access.c:vlc_dictionary_clear
Unexecuted instantiation: demux.c:vlc_dictionary_clear
Unexecuted instantiation: input.c:vlc_dictionary_clear
meta.c:vlc_dictionary_clear
Line
Count
Source
430
19.4k
{
431
19.4k
    if( p_dict->p_entries )
432
3.25k
    {
433
8.97k
        for (size_t i = 0; i < p_dict->i_size; i++)
434
5.72k
        {
435
5.72k
            vlc_dictionary_entry_t * p_current, * p_next;
436
5.72k
            p_current = p_dict->p_entries[i];
437
14.1k
            while( p_current )
438
8.43k
            {
439
8.43k
                p_next = p_current->p_next;
440
8.43k
                if( pf_free != NULL )
441
6.13k
                    ( * pf_free )( p_current->p_value, p_obj );
442
8.43k
                free( p_current->psz_key );
443
8.43k
                free( p_current );
444
8.43k
                p_current = p_next;
445
8.43k
            }
446
5.72k
        }
447
3.25k
        free( p_dict->p_entries );
448
3.25k
        p_dict->p_entries = NULL;
449
3.25k
    }
450
19.4k
    p_dict->i_size = 0;
451
19.4k
}
Unexecuted instantiation: parse.c:vlc_dictionary_clear
Unexecuted instantiation: player.c:vlc_dictionary_clear
Unexecuted instantiation: stream.c:vlc_dictionary_clear
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_clear
Unexecuted instantiation: stream_filter.c:vlc_dictionary_clear
Unexecuted instantiation: stream_memory.c:vlc_dictionary_clear
Unexecuted instantiation: subtitles.c:vlc_dictionary_clear
Unexecuted instantiation: video_output.c:vlc_dictionary_clear
Unexecuted instantiation: strings.c:vlc_dictionary_clear
Unexecuted instantiation: epg.c:vlc_dictionary_clear
Unexecuted instantiation: exit.c:vlc_dictionary_clear
Unexecuted instantiation: variables.c:vlc_dictionary_clear
Unexecuted instantiation: httpcookies.c:vlc_dictionary_clear
Unexecuted instantiation: specific.c:vlc_dictionary_clear
Unexecuted instantiation: stream_output.c:vlc_dictionary_clear
Unexecuted instantiation: vlm.c:vlc_dictionary_clear
Unexecuted instantiation: vlm_event.c:vlc_dictionary_clear
Unexecuted instantiation: vlmshell.c:vlc_dictionary_clear
Unexecuted instantiation: fetcher.c:vlc_dictionary_clear
Unexecuted instantiation: es_out.c:vlc_dictionary_clear
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_clear
452
453
static inline int
454
vlc_dictionary_has_key( const vlc_dictionary_t * p_dict, const char * psz_key )
455
725k
{
456
725k
    if( !p_dict->p_entries )
457
42.5k
        return 0;
458
459
683k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
460
683k
    const vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
461
1.25M
    for( ; p_entry != NULL; p_entry = p_entry->p_next )
462
1.00M
    {
463
1.00M
        if( !strcmp( psz_key, p_entry->psz_key ) )
464
440k
            break;
465
1.00M
    }
466
683k
    return p_entry != NULL;
467
725k
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_has_key
Unexecuted instantiation: common.c:vlc_dictionary_has_key
Unexecuted instantiation: decoder.c:vlc_dictionary_has_key
Unexecuted instantiation: core.c:vlc_dictionary_has_key
Unexecuted instantiation: error.c:vlc_dictionary_has_key
Unexecuted instantiation: asf.c:vlc_dictionary_has_key
Unexecuted instantiation: avi.c:vlc_dictionary_has_key
Unexecuted instantiation: es.c:vlc_dictionary_has_key
Unexecuted instantiation: flac.c:vlc_dictionary_has_key
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_has_key
Unexecuted instantiation: mp4.c:vlc_dictionary_has_key
Unexecuted instantiation: heif.c:vlc_dictionary_has_key
Unexecuted instantiation: sap.c:vlc_dictionary_has_key
Unexecuted instantiation: subtitle.c:vlc_dictionary_has_key
Unexecuted instantiation: ttml.c:vlc_dictionary_has_key
Unexecuted instantiation: encttml.c:vlc_dictionary_has_key
substtml.c:vlc_dictionary_has_key
Line
Count
Source
455
725k
{
456
725k
    if( !p_dict->p_entries )
457
42.5k
        return 0;
458
459
683k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
460
683k
    const vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
461
1.25M
    for( ; p_entry != NULL; p_entry = p_entry->p_next )
462
1.00M
    {
463
1.00M
        if( !strcmp( psz_key, p_entry->psz_key ) )
464
440k
            break;
465
1.00M
    }
466
683k
    return p_entry != NULL;
467
725k
}
Unexecuted instantiation: genttml.c:vlc_dictionary_has_key
Unexecuted instantiation: subsvtt.c:vlc_dictionary_has_key
Unexecuted instantiation: ogg.c:vlc_dictionary_has_key
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_has_key(vlc_dictionary_t const*, char const*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_has_key(vlc_dictionary_t const*, char const*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_has_key(vlc_dictionary_t const*, char const*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_has_key
Unexecuted instantiation: libvlc.c:vlc_dictionary_has_key
Unexecuted instantiation: media_tree.c:vlc_dictionary_has_key
Unexecuted instantiation: modules.c:vlc_dictionary_has_key
Unexecuted instantiation: entry.c:vlc_dictionary_has_key
Unexecuted instantiation: dialog.c:vlc_dictionary_has_key
Unexecuted instantiation: interface.c:vlc_dictionary_has_key
Unexecuted instantiation: item.c:vlc_dictionary_has_key
Unexecuted instantiation: access.c:vlc_dictionary_has_key
Unexecuted instantiation: demux.c:vlc_dictionary_has_key
Unexecuted instantiation: input.c:vlc_dictionary_has_key
Unexecuted instantiation: meta.c:vlc_dictionary_has_key
Unexecuted instantiation: parse.c:vlc_dictionary_has_key
Unexecuted instantiation: player.c:vlc_dictionary_has_key
Unexecuted instantiation: stream.c:vlc_dictionary_has_key
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_has_key
Unexecuted instantiation: stream_filter.c:vlc_dictionary_has_key
Unexecuted instantiation: stream_memory.c:vlc_dictionary_has_key
Unexecuted instantiation: subtitles.c:vlc_dictionary_has_key
Unexecuted instantiation: video_output.c:vlc_dictionary_has_key
Unexecuted instantiation: strings.c:vlc_dictionary_has_key
Unexecuted instantiation: epg.c:vlc_dictionary_has_key
Unexecuted instantiation: exit.c:vlc_dictionary_has_key
Unexecuted instantiation: variables.c:vlc_dictionary_has_key
Unexecuted instantiation: httpcookies.c:vlc_dictionary_has_key
Unexecuted instantiation: specific.c:vlc_dictionary_has_key
Unexecuted instantiation: stream_output.c:vlc_dictionary_has_key
Unexecuted instantiation: vlm.c:vlc_dictionary_has_key
Unexecuted instantiation: vlm_event.c:vlc_dictionary_has_key
Unexecuted instantiation: vlmshell.c:vlc_dictionary_has_key
Unexecuted instantiation: fetcher.c:vlc_dictionary_has_key
Unexecuted instantiation: es_out.c:vlc_dictionary_has_key
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_has_key
468
469
static inline void *
470
vlc_dictionary_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_key )
471
1.12M
{
472
1.12M
    if( !p_dict->p_entries )
473
270k
        return kVLCDictionaryNotFound;
474
475
854k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
476
854k
    vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
477
478
854k
    if( !p_entry )
479
20.2k
        return kVLCDictionaryNotFound;
480
481
    /* Make sure we return the right item. (Hash collision) */
482
1.53M
    do {
483
1.53M
        if( !strcmp( psz_key, p_entry->psz_key ) )
484
187k
            return p_entry->p_value;
485
1.34M
        p_entry = p_entry->p_next;
486
1.34M
    } while( p_entry );
487
488
646k
    return kVLCDictionaryNotFound;
489
834k
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_value_for_key
Unexecuted instantiation: common.c:vlc_dictionary_value_for_key
Unexecuted instantiation: decoder.c:vlc_dictionary_value_for_key
Unexecuted instantiation: core.c:vlc_dictionary_value_for_key
Unexecuted instantiation: error.c:vlc_dictionary_value_for_key
Unexecuted instantiation: asf.c:vlc_dictionary_value_for_key
Unexecuted instantiation: avi.c:vlc_dictionary_value_for_key
Unexecuted instantiation: es.c:vlc_dictionary_value_for_key
Unexecuted instantiation: flac.c:vlc_dictionary_value_for_key
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_value_for_key
Unexecuted instantiation: mp4.c:vlc_dictionary_value_for_key
Unexecuted instantiation: heif.c:vlc_dictionary_value_for_key
Unexecuted instantiation: sap.c:vlc_dictionary_value_for_key
Unexecuted instantiation: subtitle.c:vlc_dictionary_value_for_key
ttml.c:vlc_dictionary_value_for_key
Line
Count
Source
471
1.05M
{
472
1.05M
    if( !p_dict->p_entries )
473
249k
        return kVLCDictionaryNotFound;
474
475
809k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
476
809k
    vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
477
478
809k
    if( !p_entry )
479
8.63k
        return kVLCDictionaryNotFound;
480
481
    /* Make sure we return the right item. (Hash collision) */
482
1.48M
    do {
483
1.48M
        if( !strcmp( psz_key, p_entry->psz_key ) )
484
169k
            return p_entry->p_value;
485
1.31M
        p_entry = p_entry->p_next;
486
1.31M
    } while( p_entry );
487
488
631k
    return kVLCDictionaryNotFound;
489
800k
}
Unexecuted instantiation: encttml.c:vlc_dictionary_value_for_key
substtml.c:vlc_dictionary_value_for_key
Line
Count
Source
471
39.2k
{
472
39.2k
    if( !p_dict->p_entries )
473
0
        return kVLCDictionaryNotFound;
474
475
39.2k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
476
39.2k
    vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
477
478
39.2k
    if( !p_entry )
479
11.2k
        return kVLCDictionaryNotFound;
480
481
    /* Make sure we return the right item. (Hash collision) */
482
38.8k
    do {
483
38.8k
        if( !strcmp( psz_key, p_entry->psz_key ) )
484
17.3k
            return p_entry->p_value;
485
21.5k
        p_entry = p_entry->p_next;
486
21.5k
    } while( p_entry );
487
488
10.7k
    return kVLCDictionaryNotFound;
489
28.0k
}
Unexecuted instantiation: genttml.c:vlc_dictionary_value_for_key
Unexecuted instantiation: subsvtt.c:vlc_dictionary_value_for_key
Unexecuted instantiation: ogg.c:vlc_dictionary_value_for_key
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_value_for_key(vlc_dictionary_t const*, char const*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_value_for_key(vlc_dictionary_t const*, char const*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_value_for_key(vlc_dictionary_t const*, char const*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_value_for_key
Unexecuted instantiation: libvlc.c:vlc_dictionary_value_for_key
Unexecuted instantiation: media_tree.c:vlc_dictionary_value_for_key
Unexecuted instantiation: modules.c:vlc_dictionary_value_for_key
Unexecuted instantiation: entry.c:vlc_dictionary_value_for_key
Unexecuted instantiation: dialog.c:vlc_dictionary_value_for_key
Unexecuted instantiation: interface.c:vlc_dictionary_value_for_key
Unexecuted instantiation: item.c:vlc_dictionary_value_for_key
Unexecuted instantiation: access.c:vlc_dictionary_value_for_key
Unexecuted instantiation: demux.c:vlc_dictionary_value_for_key
Unexecuted instantiation: input.c:vlc_dictionary_value_for_key
meta.c:vlc_dictionary_value_for_key
Line
Count
Source
471
27.0k
{
472
27.0k
    if( !p_dict->p_entries )
473
20.9k
        return kVLCDictionaryNotFound;
474
475
6.11k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
476
6.11k
    vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
477
478
6.11k
    if( !p_entry )
479
305
        return kVLCDictionaryNotFound;
480
481
    /* Make sure we return the right item. (Hash collision) */
482
8.65k
    do {
483
8.65k
        if( !strcmp( psz_key, p_entry->psz_key ) )
484
1.15k
            return p_entry->p_value;
485
7.50k
        p_entry = p_entry->p_next;
486
7.50k
    } while( p_entry );
487
488
4.65k
    return kVLCDictionaryNotFound;
489
5.80k
}
Unexecuted instantiation: parse.c:vlc_dictionary_value_for_key
Unexecuted instantiation: player.c:vlc_dictionary_value_for_key
Unexecuted instantiation: stream.c:vlc_dictionary_value_for_key
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_value_for_key
Unexecuted instantiation: stream_filter.c:vlc_dictionary_value_for_key
Unexecuted instantiation: stream_memory.c:vlc_dictionary_value_for_key
Unexecuted instantiation: subtitles.c:vlc_dictionary_value_for_key
Unexecuted instantiation: video_output.c:vlc_dictionary_value_for_key
Unexecuted instantiation: strings.c:vlc_dictionary_value_for_key
Unexecuted instantiation: epg.c:vlc_dictionary_value_for_key
Unexecuted instantiation: exit.c:vlc_dictionary_value_for_key
Unexecuted instantiation: variables.c:vlc_dictionary_value_for_key
Unexecuted instantiation: httpcookies.c:vlc_dictionary_value_for_key
Unexecuted instantiation: specific.c:vlc_dictionary_value_for_key
Unexecuted instantiation: stream_output.c:vlc_dictionary_value_for_key
Unexecuted instantiation: vlm.c:vlc_dictionary_value_for_key
Unexecuted instantiation: vlm_event.c:vlc_dictionary_value_for_key
Unexecuted instantiation: vlmshell.c:vlc_dictionary_value_for_key
Unexecuted instantiation: fetcher.c:vlc_dictionary_value_for_key
Unexecuted instantiation: es_out.c:vlc_dictionary_value_for_key
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_value_for_key
490
491
static inline size_t
492
vlc_dictionary_keys_count( const vlc_dictionary_t * p_dict )
493
275
{
494
275
    vlc_dictionary_entry_t * p_entry;
495
275
    size_t i, count = 0;
496
497
275
    if( !p_dict->p_entries )
498
12
        return 0;
499
500
1.17k
    for( i = 0; i < p_dict->i_size; i++ )
501
914
    {
502
1.74k
        for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next ) count++;
503
914
    }
504
263
    return count;
505
275
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_keys_count
Unexecuted instantiation: common.c:vlc_dictionary_keys_count
Unexecuted instantiation: decoder.c:vlc_dictionary_keys_count
Unexecuted instantiation: core.c:vlc_dictionary_keys_count
Unexecuted instantiation: error.c:vlc_dictionary_keys_count
Unexecuted instantiation: asf.c:vlc_dictionary_keys_count
Unexecuted instantiation: avi.c:vlc_dictionary_keys_count
Unexecuted instantiation: es.c:vlc_dictionary_keys_count
Unexecuted instantiation: flac.c:vlc_dictionary_keys_count
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_keys_count
Unexecuted instantiation: mp4.c:vlc_dictionary_keys_count
Unexecuted instantiation: heif.c:vlc_dictionary_keys_count
Unexecuted instantiation: sap.c:vlc_dictionary_keys_count
Unexecuted instantiation: subtitle.c:vlc_dictionary_keys_count
Unexecuted instantiation: ttml.c:vlc_dictionary_keys_count
Unexecuted instantiation: encttml.c:vlc_dictionary_keys_count
Unexecuted instantiation: substtml.c:vlc_dictionary_keys_count
Unexecuted instantiation: genttml.c:vlc_dictionary_keys_count
Unexecuted instantiation: subsvtt.c:vlc_dictionary_keys_count
Unexecuted instantiation: ogg.c:vlc_dictionary_keys_count
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_keys_count(vlc_dictionary_t const*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_keys_count(vlc_dictionary_t const*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_keys_count(vlc_dictionary_t const*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_keys_count
Unexecuted instantiation: libvlc.c:vlc_dictionary_keys_count
Unexecuted instantiation: media_tree.c:vlc_dictionary_keys_count
Unexecuted instantiation: modules.c:vlc_dictionary_keys_count
Unexecuted instantiation: entry.c:vlc_dictionary_keys_count
Unexecuted instantiation: dialog.c:vlc_dictionary_keys_count
Unexecuted instantiation: interface.c:vlc_dictionary_keys_count
Unexecuted instantiation: item.c:vlc_dictionary_keys_count
Unexecuted instantiation: access.c:vlc_dictionary_keys_count
Unexecuted instantiation: demux.c:vlc_dictionary_keys_count
Unexecuted instantiation: input.c:vlc_dictionary_keys_count
meta.c:vlc_dictionary_keys_count
Line
Count
Source
493
275
{
494
275
    vlc_dictionary_entry_t * p_entry;
495
275
    size_t i, count = 0;
496
497
275
    if( !p_dict->p_entries )
498
12
        return 0;
499
500
1.17k
    for( i = 0; i < p_dict->i_size; i++ )
501
914
    {
502
1.74k
        for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next ) count++;
503
914
    }
504
263
    return count;
505
275
}
Unexecuted instantiation: parse.c:vlc_dictionary_keys_count
Unexecuted instantiation: player.c:vlc_dictionary_keys_count
Unexecuted instantiation: stream.c:vlc_dictionary_keys_count
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_keys_count
Unexecuted instantiation: stream_filter.c:vlc_dictionary_keys_count
Unexecuted instantiation: stream_memory.c:vlc_dictionary_keys_count
Unexecuted instantiation: subtitles.c:vlc_dictionary_keys_count
Unexecuted instantiation: video_output.c:vlc_dictionary_keys_count
Unexecuted instantiation: strings.c:vlc_dictionary_keys_count
Unexecuted instantiation: epg.c:vlc_dictionary_keys_count
Unexecuted instantiation: exit.c:vlc_dictionary_keys_count
Unexecuted instantiation: variables.c:vlc_dictionary_keys_count
Unexecuted instantiation: httpcookies.c:vlc_dictionary_keys_count
Unexecuted instantiation: specific.c:vlc_dictionary_keys_count
Unexecuted instantiation: stream_output.c:vlc_dictionary_keys_count
Unexecuted instantiation: vlm.c:vlc_dictionary_keys_count
Unexecuted instantiation: vlm_event.c:vlc_dictionary_keys_count
Unexecuted instantiation: vlmshell.c:vlc_dictionary_keys_count
Unexecuted instantiation: fetcher.c:vlc_dictionary_keys_count
Unexecuted instantiation: es_out.c:vlc_dictionary_keys_count
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_keys_count
506
507
static inline bool
508
vlc_dictionary_is_empty( const vlc_dictionary_t * p_dict )
509
49.7k
{
510
49.7k
    if( p_dict->p_entries )
511
50.9k
        for (size_t i = 0; i < p_dict->i_size; i++)
512
50.9k
            if( p_dict->p_entries[i] )
513
39.9k
                return false;
514
9.76k
    return true;
515
49.7k
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_is_empty
Unexecuted instantiation: common.c:vlc_dictionary_is_empty
Unexecuted instantiation: decoder.c:vlc_dictionary_is_empty
Unexecuted instantiation: core.c:vlc_dictionary_is_empty
Unexecuted instantiation: error.c:vlc_dictionary_is_empty
Unexecuted instantiation: asf.c:vlc_dictionary_is_empty
Unexecuted instantiation: avi.c:vlc_dictionary_is_empty
Unexecuted instantiation: es.c:vlc_dictionary_is_empty
Unexecuted instantiation: flac.c:vlc_dictionary_is_empty
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_is_empty
Unexecuted instantiation: mp4.c:vlc_dictionary_is_empty
Unexecuted instantiation: heif.c:vlc_dictionary_is_empty
Unexecuted instantiation: sap.c:vlc_dictionary_is_empty
Unexecuted instantiation: subtitle.c:vlc_dictionary_is_empty
Unexecuted instantiation: ttml.c:vlc_dictionary_is_empty
Unexecuted instantiation: encttml.c:vlc_dictionary_is_empty
substtml.c:vlc_dictionary_is_empty
Line
Count
Source
509
49.7k
{
510
49.7k
    if( p_dict->p_entries )
511
50.9k
        for (size_t i = 0; i < p_dict->i_size; i++)
512
50.9k
            if( p_dict->p_entries[i] )
513
39.9k
                return false;
514
9.76k
    return true;
515
49.7k
}
Unexecuted instantiation: genttml.c:vlc_dictionary_is_empty
Unexecuted instantiation: subsvtt.c:vlc_dictionary_is_empty
Unexecuted instantiation: ogg.c:vlc_dictionary_is_empty
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_is_empty(vlc_dictionary_t const*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_is_empty(vlc_dictionary_t const*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_is_empty(vlc_dictionary_t const*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_is_empty
Unexecuted instantiation: libvlc.c:vlc_dictionary_is_empty
Unexecuted instantiation: media_tree.c:vlc_dictionary_is_empty
Unexecuted instantiation: modules.c:vlc_dictionary_is_empty
Unexecuted instantiation: entry.c:vlc_dictionary_is_empty
Unexecuted instantiation: dialog.c:vlc_dictionary_is_empty
Unexecuted instantiation: interface.c:vlc_dictionary_is_empty
Unexecuted instantiation: item.c:vlc_dictionary_is_empty
Unexecuted instantiation: access.c:vlc_dictionary_is_empty
Unexecuted instantiation: demux.c:vlc_dictionary_is_empty
Unexecuted instantiation: input.c:vlc_dictionary_is_empty
Unexecuted instantiation: meta.c:vlc_dictionary_is_empty
Unexecuted instantiation: parse.c:vlc_dictionary_is_empty
Unexecuted instantiation: player.c:vlc_dictionary_is_empty
Unexecuted instantiation: stream.c:vlc_dictionary_is_empty
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_is_empty
Unexecuted instantiation: stream_filter.c:vlc_dictionary_is_empty
Unexecuted instantiation: stream_memory.c:vlc_dictionary_is_empty
Unexecuted instantiation: subtitles.c:vlc_dictionary_is_empty
Unexecuted instantiation: video_output.c:vlc_dictionary_is_empty
Unexecuted instantiation: strings.c:vlc_dictionary_is_empty
Unexecuted instantiation: epg.c:vlc_dictionary_is_empty
Unexecuted instantiation: exit.c:vlc_dictionary_is_empty
Unexecuted instantiation: variables.c:vlc_dictionary_is_empty
Unexecuted instantiation: httpcookies.c:vlc_dictionary_is_empty
Unexecuted instantiation: specific.c:vlc_dictionary_is_empty
Unexecuted instantiation: stream_output.c:vlc_dictionary_is_empty
Unexecuted instantiation: vlm.c:vlc_dictionary_is_empty
Unexecuted instantiation: vlm_event.c:vlc_dictionary_is_empty
Unexecuted instantiation: vlmshell.c:vlc_dictionary_is_empty
Unexecuted instantiation: fetcher.c:vlc_dictionary_is_empty
Unexecuted instantiation: es_out.c:vlc_dictionary_is_empty
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_is_empty
516
517
static inline char **
518
vlc_dictionary_all_keys( const vlc_dictionary_t * p_dict )
519
275
{
520
275
    vlc_dictionary_entry_t * p_entry;
521
275
    char ** ppsz_ret;
522
275
    size_t i, count = vlc_dictionary_keys_count(p_dict);
523
524
275
    ppsz_ret = (char**)malloc(sizeof(char *) * (count + 1));
525
275
    if( unlikely(!ppsz_ret) )
526
0
        return NULL;
527
528
275
    count = 0;
529
1.18k
    for( i = 0; i < p_dict->i_size; i++ )
530
914
    {
531
1.74k
        for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next )
532
832
            ppsz_ret[count++] = strdup( p_entry->psz_key );
533
914
    }
534
275
    ppsz_ret[count] = NULL;
535
275
    return ppsz_ret;
536
275
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_all_keys
Unexecuted instantiation: common.c:vlc_dictionary_all_keys
Unexecuted instantiation: decoder.c:vlc_dictionary_all_keys
Unexecuted instantiation: core.c:vlc_dictionary_all_keys
Unexecuted instantiation: error.c:vlc_dictionary_all_keys
Unexecuted instantiation: asf.c:vlc_dictionary_all_keys
Unexecuted instantiation: avi.c:vlc_dictionary_all_keys
Unexecuted instantiation: es.c:vlc_dictionary_all_keys
Unexecuted instantiation: flac.c:vlc_dictionary_all_keys
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_all_keys
Unexecuted instantiation: mp4.c:vlc_dictionary_all_keys
Unexecuted instantiation: heif.c:vlc_dictionary_all_keys
Unexecuted instantiation: sap.c:vlc_dictionary_all_keys
Unexecuted instantiation: subtitle.c:vlc_dictionary_all_keys
Unexecuted instantiation: ttml.c:vlc_dictionary_all_keys
Unexecuted instantiation: encttml.c:vlc_dictionary_all_keys
Unexecuted instantiation: substtml.c:vlc_dictionary_all_keys
Unexecuted instantiation: genttml.c:vlc_dictionary_all_keys
Unexecuted instantiation: subsvtt.c:vlc_dictionary_all_keys
Unexecuted instantiation: ogg.c:vlc_dictionary_all_keys
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_all_keys(vlc_dictionary_t const*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_all_keys(vlc_dictionary_t const*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_all_keys(vlc_dictionary_t const*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_all_keys
Unexecuted instantiation: libvlc.c:vlc_dictionary_all_keys
Unexecuted instantiation: media_tree.c:vlc_dictionary_all_keys
Unexecuted instantiation: modules.c:vlc_dictionary_all_keys
Unexecuted instantiation: entry.c:vlc_dictionary_all_keys
Unexecuted instantiation: dialog.c:vlc_dictionary_all_keys
Unexecuted instantiation: interface.c:vlc_dictionary_all_keys
Unexecuted instantiation: item.c:vlc_dictionary_all_keys
Unexecuted instantiation: access.c:vlc_dictionary_all_keys
Unexecuted instantiation: demux.c:vlc_dictionary_all_keys
Unexecuted instantiation: input.c:vlc_dictionary_all_keys
meta.c:vlc_dictionary_all_keys
Line
Count
Source
519
275
{
520
275
    vlc_dictionary_entry_t * p_entry;
521
275
    char ** ppsz_ret;
522
275
    size_t i, count = vlc_dictionary_keys_count(p_dict);
523
524
275
    ppsz_ret = (char**)malloc(sizeof(char *) * (count + 1));
525
275
    if( unlikely(!ppsz_ret) )
526
0
        return NULL;
527
528
275
    count = 0;
529
1.18k
    for( i = 0; i < p_dict->i_size; i++ )
530
914
    {
531
1.74k
        for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next )
532
832
            ppsz_ret[count++] = strdup( p_entry->psz_key );
533
914
    }
534
275
    ppsz_ret[count] = NULL;
535
275
    return ppsz_ret;
536
275
}
Unexecuted instantiation: parse.c:vlc_dictionary_all_keys
Unexecuted instantiation: player.c:vlc_dictionary_all_keys
Unexecuted instantiation: stream.c:vlc_dictionary_all_keys
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_all_keys
Unexecuted instantiation: stream_filter.c:vlc_dictionary_all_keys
Unexecuted instantiation: stream_memory.c:vlc_dictionary_all_keys
Unexecuted instantiation: subtitles.c:vlc_dictionary_all_keys
Unexecuted instantiation: video_output.c:vlc_dictionary_all_keys
Unexecuted instantiation: strings.c:vlc_dictionary_all_keys
Unexecuted instantiation: epg.c:vlc_dictionary_all_keys
Unexecuted instantiation: exit.c:vlc_dictionary_all_keys
Unexecuted instantiation: variables.c:vlc_dictionary_all_keys
Unexecuted instantiation: httpcookies.c:vlc_dictionary_all_keys
Unexecuted instantiation: specific.c:vlc_dictionary_all_keys
Unexecuted instantiation: stream_output.c:vlc_dictionary_all_keys
Unexecuted instantiation: vlm.c:vlc_dictionary_all_keys
Unexecuted instantiation: vlm_event.c:vlc_dictionary_all_keys
Unexecuted instantiation: vlmshell.c:vlc_dictionary_all_keys
Unexecuted instantiation: fetcher.c:vlc_dictionary_all_keys
Unexecuted instantiation: es_out.c:vlc_dictionary_all_keys
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_all_keys
537
538
static inline void
539
vlc_dictionary_insert_impl_( vlc_dictionary_t * p_dict, const char * psz_key,
540
                             void * p_value, bool rebuild )
541
1.78M
{
542
1.78M
    if( !p_dict->p_entries )
543
579k
        vlc_dictionary_init( p_dict, 1 );
544
545
1.78M
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
546
1.78M
    vlc_dictionary_entry_t * p_entry;
547
548
1.78M
    p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry));
549
1.78M
    p_entry->psz_key = strdup( psz_key );
550
1.78M
    p_entry->p_value = p_value;
551
1.78M
    p_entry->p_next = p_dict->p_entries[i_pos];
552
1.78M
    p_dict->p_entries[i_pos] = p_entry;
553
1.78M
    if( rebuild )
554
1.36M
    {
555
        /* Count how many items there was */
556
1.36M
        int count;
557
2.42M
        for( count = 1; p_entry->p_next; count++ )
558
1.05M
            p_entry = p_entry->p_next;
559
1.36M
        if( count > 3 ) /* XXX: this need tuning */
560
72.5k
        {
561
            /* Here it starts to be not good, rebuild a bigger dictionary */
562
72.5k
            struct vlc_dictionary_t new_dict;
563
72.5k
            size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */
564
72.5k
            size_t i;
565
72.5k
            vlc_dictionary_init( &new_dict, i_new_size );
566
252k
            for( i = 0; i < p_dict->i_size; i++ )
567
180k
            {
568
180k
                p_entry = p_dict->p_entries[i];
569
598k
                while( p_entry )
570
418k
                {
571
418k
                    vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key,
572
418k
                                             p_entry->p_value,
573
418k
                                             false /* To avoid multiple rebuild loop */);
574
418k
                    p_entry = p_entry->p_next;
575
418k
                }
576
180k
            }
577
578
72.5k
            vlc_dictionary_clear( p_dict, NULL, NULL );
579
72.5k
            p_dict->i_size = new_dict.i_size;
580
72.5k
            p_dict->p_entries = new_dict.p_entries;
581
72.5k
        }
582
1.36M
    }
583
1.78M
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: common.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: decoder.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: core.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: error.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: asf.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: avi.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: es.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: flac.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: mp4.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: heif.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: sap.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: subtitle.c:vlc_dictionary_insert_impl_
ttml.c:vlc_dictionary_insert_impl_
Line
Count
Source
541
1.16M
{
542
1.16M
    if( !p_dict->p_entries )
543
534k
        vlc_dictionary_init( p_dict, 1 );
544
545
1.16M
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
546
1.16M
    vlc_dictionary_entry_t * p_entry;
547
548
1.16M
    p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry));
549
1.16M
    p_entry->psz_key = strdup( psz_key );
550
1.16M
    p_entry->p_value = p_value;
551
1.16M
    p_entry->p_next = p_dict->p_entries[i_pos];
552
1.16M
    p_dict->p_entries[i_pos] = p_entry;
553
1.16M
    if( rebuild )
554
1.05M
    {
555
        /* Count how many items there was */
556
1.05M
        int count;
557
1.71M
        for( count = 1; p_entry->p_next; count++ )
558
658k
            p_entry = p_entry->p_next;
559
1.05M
        if( count > 3 ) /* XXX: this need tuning */
560
23.0k
        {
561
            /* Here it starts to be not good, rebuild a bigger dictionary */
562
23.0k
            struct vlc_dictionary_t new_dict;
563
23.0k
            size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */
564
23.0k
            size_t i;
565
23.0k
            vlc_dictionary_init( &new_dict, i_new_size );
566
65.9k
            for( i = 0; i < p_dict->i_size; i++ )
567
42.9k
            {
568
42.9k
                p_entry = p_dict->p_entries[i];
569
150k
                while( p_entry )
570
107k
                {
571
107k
                    vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key,
572
107k
                                             p_entry->p_value,
573
107k
                                             false /* To avoid multiple rebuild loop */);
574
107k
                    p_entry = p_entry->p_next;
575
107k
                }
576
42.9k
            }
577
578
23.0k
            vlc_dictionary_clear( p_dict, NULL, NULL );
579
23.0k
            p_dict->i_size = new_dict.i_size;
580
23.0k
            p_dict->p_entries = new_dict.p_entries;
581
23.0k
        }
582
1.05M
    }
583
1.16M
}
Unexecuted instantiation: encttml.c:vlc_dictionary_insert_impl_
substtml.c:vlc_dictionary_insert_impl_
Line
Count
Source
541
615k
{
542
615k
    if( !p_dict->p_entries )
543
42.5k
        vlc_dictionary_init( p_dict, 1 );
544
545
615k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
546
615k
    vlc_dictionary_entry_t * p_entry;
547
548
615k
    p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry));
549
615k
    p_entry->psz_key = strdup( psz_key );
550
615k
    p_entry->p_value = p_value;
551
615k
    p_entry->p_next = p_dict->p_entries[i_pos];
552
615k
    p_dict->p_entries[i_pos] = p_entry;
553
615k
    if( rebuild )
554
307k
    {
555
        /* Count how many items there was */
556
307k
        int count;
557
699k
        for( count = 1; p_entry->p_next; count++ )
558
392k
            p_entry = p_entry->p_next;
559
307k
        if( count > 3 ) /* XXX: this need tuning */
560
49.0k
        {
561
            /* Here it starts to be not good, rebuild a bigger dictionary */
562
49.0k
            struct vlc_dictionary_t new_dict;
563
49.0k
            size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */
564
49.0k
            size_t i;
565
49.0k
            vlc_dictionary_init( &new_dict, i_new_size );
566
185k
            for( i = 0; i < p_dict->i_size; i++ )
567
136k
            {
568
136k
                p_entry = p_dict->p_entries[i];
569
444k
                while( p_entry )
570
308k
                {
571
308k
                    vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key,
572
308k
                                             p_entry->p_value,
573
308k
                                             false /* To avoid multiple rebuild loop */);
574
308k
                    p_entry = p_entry->p_next;
575
308k
                }
576
136k
            }
577
578
49.0k
            vlc_dictionary_clear( p_dict, NULL, NULL );
579
49.0k
            p_dict->i_size = new_dict.i_size;
580
49.0k
            p_dict->p_entries = new_dict.p_entries;
581
49.0k
        }
582
307k
    }
583
615k
}
Unexecuted instantiation: genttml.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: subsvtt.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: ogg.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_insert_impl_(vlc_dictionary_t*, char const*, void*, bool)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_insert_impl_(vlc_dictionary_t*, char const*, void*, bool)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_insert_impl_(vlc_dictionary_t*, char const*, void*, bool)
Unexecuted instantiation: subsusf.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: libvlc.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: media_tree.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: modules.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: entry.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: dialog.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: interface.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: item.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: access.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: demux.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: input.c:vlc_dictionary_insert_impl_
meta.c:vlc_dictionary_insert_impl_
Line
Count
Source
541
8.76k
{
542
8.76k
    if( !p_dict->p_entries )
543
2.82k
        vlc_dictionary_init( p_dict, 1 );
544
545
8.76k
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
546
8.76k
    vlc_dictionary_entry_t * p_entry;
547
548
8.76k
    p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry));
549
8.76k
    p_entry->psz_key = strdup( psz_key );
550
8.76k
    p_entry->p_value = p_value;
551
8.76k
    p_entry->p_next = p_dict->p_entries[i_pos];
552
8.76k
    p_dict->p_entries[i_pos] = p_entry;
553
8.76k
    if( rebuild )
554
6.45k
    {
555
        /* Count how many items there was */
556
6.45k
        int count;
557
12.0k
        for( count = 1; p_entry->p_next; count++ )
558
5.58k
            p_entry = p_entry->p_next;
559
6.45k
        if( count > 3 ) /* XXX: this need tuning */
560
424
        {
561
            /* Here it starts to be not good, rebuild a bigger dictionary */
562
424
            struct vlc_dictionary_t new_dict;
563
424
            size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */
564
424
            size_t i;
565
424
            vlc_dictionary_init( &new_dict, i_new_size );
566
1.60k
            for( i = 0; i < p_dict->i_size; i++ )
567
1.18k
            {
568
1.18k
                p_entry = p_dict->p_entries[i];
569
3.48k
                while( p_entry )
570
2.30k
                {
571
2.30k
                    vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key,
572
2.30k
                                             p_entry->p_value,
573
2.30k
                                             false /* To avoid multiple rebuild loop */);
574
2.30k
                    p_entry = p_entry->p_next;
575
2.30k
                }
576
1.18k
            }
577
578
424
            vlc_dictionary_clear( p_dict, NULL, NULL );
579
424
            p_dict->i_size = new_dict.i_size;
580
424
            p_dict->p_entries = new_dict.p_entries;
581
424
        }
582
6.45k
    }
583
8.76k
}
Unexecuted instantiation: parse.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: player.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: stream.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: stream_filter.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: stream_memory.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: subtitles.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: video_output.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: strings.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: epg.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: exit.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: variables.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: httpcookies.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: specific.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: stream_output.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: vlm.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: vlm_event.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: vlmshell.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: fetcher.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: es_out.c:vlc_dictionary_insert_impl_
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_insert_impl_
584
585
static inline void
586
vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key, void * p_value )
587
1.36M
{
588
1.36M
    vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true );
589
1.36M
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_insert
Unexecuted instantiation: common.c:vlc_dictionary_insert
Unexecuted instantiation: decoder.c:vlc_dictionary_insert
Unexecuted instantiation: core.c:vlc_dictionary_insert
Unexecuted instantiation: error.c:vlc_dictionary_insert
Unexecuted instantiation: asf.c:vlc_dictionary_insert
Unexecuted instantiation: avi.c:vlc_dictionary_insert
Unexecuted instantiation: es.c:vlc_dictionary_insert
Unexecuted instantiation: flac.c:vlc_dictionary_insert
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_insert
Unexecuted instantiation: mp4.c:vlc_dictionary_insert
Unexecuted instantiation: heif.c:vlc_dictionary_insert
Unexecuted instantiation: sap.c:vlc_dictionary_insert
Unexecuted instantiation: subtitle.c:vlc_dictionary_insert
ttml.c:vlc_dictionary_insert
Line
Count
Source
587
1.05M
{
588
1.05M
    vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true );
589
1.05M
}
Unexecuted instantiation: encttml.c:vlc_dictionary_insert
substtml.c:vlc_dictionary_insert
Line
Count
Source
587
307k
{
588
307k
    vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true );
589
307k
}
Unexecuted instantiation: genttml.c:vlc_dictionary_insert
Unexecuted instantiation: subsvtt.c:vlc_dictionary_insert
Unexecuted instantiation: ogg.c:vlc_dictionary_insert
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_insert(vlc_dictionary_t*, char const*, void*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_insert(vlc_dictionary_t*, char const*, void*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_insert(vlc_dictionary_t*, char const*, void*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_insert
Unexecuted instantiation: libvlc.c:vlc_dictionary_insert
Unexecuted instantiation: media_tree.c:vlc_dictionary_insert
Unexecuted instantiation: modules.c:vlc_dictionary_insert
Unexecuted instantiation: entry.c:vlc_dictionary_insert
Unexecuted instantiation: dialog.c:vlc_dictionary_insert
Unexecuted instantiation: interface.c:vlc_dictionary_insert
Unexecuted instantiation: item.c:vlc_dictionary_insert
Unexecuted instantiation: access.c:vlc_dictionary_insert
Unexecuted instantiation: demux.c:vlc_dictionary_insert
Unexecuted instantiation: input.c:vlc_dictionary_insert
meta.c:vlc_dictionary_insert
Line
Count
Source
587
6.45k
{
588
6.45k
    vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true );
589
6.45k
}
Unexecuted instantiation: parse.c:vlc_dictionary_insert
Unexecuted instantiation: player.c:vlc_dictionary_insert
Unexecuted instantiation: stream.c:vlc_dictionary_insert
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_insert
Unexecuted instantiation: stream_filter.c:vlc_dictionary_insert
Unexecuted instantiation: stream_memory.c:vlc_dictionary_insert
Unexecuted instantiation: subtitles.c:vlc_dictionary_insert
Unexecuted instantiation: video_output.c:vlc_dictionary_insert
Unexecuted instantiation: strings.c:vlc_dictionary_insert
Unexecuted instantiation: epg.c:vlc_dictionary_insert
Unexecuted instantiation: exit.c:vlc_dictionary_insert
Unexecuted instantiation: variables.c:vlc_dictionary_insert
Unexecuted instantiation: httpcookies.c:vlc_dictionary_insert
Unexecuted instantiation: specific.c:vlc_dictionary_insert
Unexecuted instantiation: stream_output.c:vlc_dictionary_insert
Unexecuted instantiation: vlm.c:vlc_dictionary_insert
Unexecuted instantiation: vlm_event.c:vlc_dictionary_insert
Unexecuted instantiation: vlmshell.c:vlc_dictionary_insert
Unexecuted instantiation: fetcher.c:vlc_dictionary_insert
Unexecuted instantiation: es_out.c:vlc_dictionary_insert
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_insert
590
591
static inline void
592
vlc_dictionary_remove_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_key,
593
                                     void ( * pf_free )( void * p_data, void * p_obj ),
594
                                     void * p_obj )
595
325
{
596
325
    if( !p_dict->p_entries )
597
0
        return;
598
599
325
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
600
325
    vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
601
325
    vlc_dictionary_entry_t * p_prev;
602
603
325
    if( !p_entry )
604
0
        return; /* Not found, nothing to do */
605
606
    /* Hash collision */
607
325
    p_prev = NULL;
608
515
    do {
609
515
        if( !strcmp( psz_key, p_entry->psz_key ) )
610
325
        {
611
325
            if( pf_free != NULL )
612
325
                ( * pf_free )( p_entry->p_value, p_obj );
613
325
            if( !p_prev )
614
193
                p_dict->p_entries[i_pos] = p_entry->p_next;
615
132
            else
616
132
                p_prev->p_next = p_entry->p_next;
617
325
            free( p_entry->psz_key );
618
325
            free( p_entry );
619
325
            return;
620
325
        }
621
190
        p_prev = p_entry;
622
190
        p_entry = p_entry->p_next;
623
190
    } while( p_entry );
624
625
    /* No key was found */
626
325
}
Unexecuted instantiation: demux-run.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: common.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: decoder.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: core.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: error.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: asf.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: avi.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: es.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: flac.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: xiph_metadata.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: mp4.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: heif.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: sap.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: subtitle.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: ttml.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: encttml.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: substtml.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: genttml.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: subsvtt.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: ogg.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: matroska_segment.cpp:vlc_dictionary_remove_value_for_key(vlc_dictionary_t const*, char const*, void (*)(void*, void*), void*)
Unexecuted instantiation: chapters.cpp:vlc_dictionary_remove_value_for_key(vlc_dictionary_t const*, char const*, void (*)(void*, void*), void*)
Unexecuted instantiation: chapter_command.cpp:vlc_dictionary_remove_value_for_key(vlc_dictionary_t const*, char const*, void (*)(void*, void*), void*)
Unexecuted instantiation: subsusf.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: libvlc.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: media_tree.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: modules.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: entry.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: dialog.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: interface.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: item.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: access.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: demux.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: input.c:vlc_dictionary_remove_value_for_key
meta.c:vlc_dictionary_remove_value_for_key
Line
Count
Source
595
325
{
596
325
    if( !p_dict->p_entries )
597
0
        return;
598
599
325
    size_t i_pos = DictHash(psz_key, p_dict->i_size);
600
325
    vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos];
601
325
    vlc_dictionary_entry_t * p_prev;
602
603
325
    if( !p_entry )
604
0
        return; /* Not found, nothing to do */
605
606
    /* Hash collision */
607
325
    p_prev = NULL;
608
515
    do {
609
515
        if( !strcmp( psz_key, p_entry->psz_key ) )
610
325
        {
611
325
            if( pf_free != NULL )
612
325
                ( * pf_free )( p_entry->p_value, p_obj );
613
325
            if( !p_prev )
614
193
                p_dict->p_entries[i_pos] = p_entry->p_next;
615
132
            else
616
132
                p_prev->p_next = p_entry->p_next;
617
325
            free( p_entry->psz_key );
618
325
            free( p_entry );
619
325
            return;
620
325
        }
621
190
        p_prev = p_entry;
622
190
        p_entry = p_entry->p_next;
623
190
    } while( p_entry );
624
625
    /* No key was found */
626
325
}
Unexecuted instantiation: parse.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: player.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: stream.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: stream_extractor.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: stream_filter.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: stream_memory.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: subtitles.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: video_output.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: strings.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: epg.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: exit.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: variables.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: httpcookies.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: specific.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: stream_output.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: vlm.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: vlm_event.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: vlmshell.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: fetcher.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: es_out.c:vlc_dictionary_remove_value_for_key
Unexecuted instantiation: es_out_timeshift.c:vlc_dictionary_remove_value_for_key
627
628
#ifdef __cplusplus
629
// C++ helpers
630
template <typename T>
631
void vlc_delete_all( T &container )
632
51
{
633
51
    typename T::iterator it = container.begin();
634
51
    while ( it != container.end() )
635
0
    {
636
0
        delete *it;
637
0
        ++it;
638
0
    }
639
51
    container.clear();
640
51
}
void vlc_delete_all<std::__1::vector<mkv::chapter_edition_c*, std::__1::allocator<mkv::chapter_edition_c*> > >(std::__1::vector<mkv::chapter_edition_c*, std::__1::allocator<mkv::chapter_edition_c*> >&)
Line
Count
Source
632
17
{
633
17
    typename T::iterator it = container.begin();
634
17
    while ( it != container.end() )
635
0
    {
636
0
        delete *it;
637
0
        ++it;
638
0
    }
639
17
    container.clear();
640
17
}
void vlc_delete_all<std::__1::vector<mkv::chapter_translation_c*, std::__1::allocator<mkv::chapter_translation_c*> > >(std::__1::vector<mkv::chapter_translation_c*, std::__1::allocator<mkv::chapter_translation_c*> >&)
Line
Count
Source
632
17
{
633
17
    typename T::iterator it = container.begin();
634
17
    while ( it != container.end() )
635
0
    {
636
0
        delete *it;
637
0
        ++it;
638
0
    }
639
17
    container.clear();
640
17
}
void vlc_delete_all<std::__1::vector<libmatroska::KaxSegmentFamily*, std::__1::allocator<libmatroska::KaxSegmentFamily*> > >(std::__1::vector<libmatroska::KaxSegmentFamily*, std::__1::allocator<libmatroska::KaxSegmentFamily*> >&)
Line
Count
Source
632
17
{
633
17
    typename T::iterator it = container.begin();
634
17
    while ( it != container.end() )
635
0
    {
636
0
        delete *it;
637
0
        ++it;
638
0
    }
639
17
    container.clear();
640
17
}
Unexecuted instantiation: void vlc_delete_all<std::__1::vector<mkv::chapter_codec_cmds_c*, std::__1::allocator<mkv::chapter_codec_cmds_c*> > >(std::__1::vector<mkv::chapter_codec_cmds_c*, std::__1::allocator<mkv::chapter_codec_cmds_c*> >&)
Unexecuted instantiation: void vlc_delete_all<std::__1::vector<mkv::chapter_item_c*, std::__1::allocator<mkv::chapter_item_c*> > >(std::__1::vector<mkv::chapter_item_c*, std::__1::allocator<mkv::chapter_item_c*> >&)
641
642
#endif
643
644
#endif