/src/vlc/include/vlc_arrays.h
Line | Count | Source |
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 | 967k | { |
50 | 967k | void *n = realloc(p,sz); |
51 | 967k | if( !n ) |
52 | 0 | free(p); |
53 | 967k | return n; |
54 | 967k | } 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 Line | Count | Source | 49 | 4.04k | { | 50 | 4.04k | void *n = realloc(p,sz); | 51 | 4.04k | if( !n ) | 52 | 0 | free(p); | 53 | 4.04k | return n; | 54 | 4.04k | } |
Unexecuted instantiation: es.c:realloc_or_free Unexecuted instantiation: flac.c:realloc_or_free Unexecuted instantiation: xiph_metadata.c:realloc_or_free Line | Count | Source | 49 | 326 | { | 50 | 326 | void *n = realloc(p,sz); | 51 | 326 | if( !n ) | 52 | 0 | free(p); | 53 | 326 | return n; | 54 | 326 | } |
Unexecuted instantiation: heif.c:realloc_or_free Unexecuted instantiation: sap.c:realloc_or_free subtitle.c:realloc_or_free Line | Count | Source | 49 | 957k | { | 50 | 957k | void *n = realloc(p,sz); | 51 | 957k | if( !n ) | 52 | 0 | free(p); | 53 | 957k | return n; | 54 | 957k | } |
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 Line | Count | Source | 49 | 5.02k | { | 50 | 5.02k | void *n = realloc(p,sz); | 51 | 5.02k | if( !n ) | 52 | 0 | free(p); | 53 | 5.02k | return n; | 54 | 5.02k | } |
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 | 53.2k | do { \ |
58 | 53.2k | (count) = 0; \ |
59 | 53.2k | (tab) = NULL; \ |
60 | 53.2k | } while(0) |
61 | | |
62 | | #define TAB_CLEAN( count, tab ) \ |
63 | 47.7k | do { \ |
64 | 47.7k | free( tab ); \ |
65 | 47.7k | (count)= 0; \ |
66 | 47.7k | (tab)= NULL; \ |
67 | 47.7k | } while(0) |
68 | | |
69 | | #define TAB_APPEND_CAST( cast, count, tab, p ) \ |
70 | 256k | do { \ |
71 | 256k | if( (count) > 0 ) \ |
72 | 256k | (tab) = cast realloc( tab, sizeof( *(tab) ) * ( (count) + 1 ) ); \ |
73 | 256k | else \ |
74 | 256k | (tab) = cast malloc( sizeof( *(tab) ) ); \ |
75 | 256k | if( !(tab) ) abort(); \ |
76 | 256k | (tab)[count] = (p); \ |
77 | 256k | (count)++; \ |
78 | 256k | } while(0) |
79 | | |
80 | | #define TAB_APPEND( count, tab, p ) \ |
81 | 255k | 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 | 13.7k | do { \ |
95 | 13.7k | if( (count) > 1 ) \ |
96 | 13.7k | memmove( (tab) + (index), \ |
97 | 2.68k | (tab) + (index) + 1, \ |
98 | 2.68k | ((count) - (index) - 1 ) * sizeof( *(tab) ) );\ |
99 | 13.7k | (count)--; \ |
100 | 13.7k | if( (count) == 0 ) \ |
101 | 13.7k | { \ |
102 | 11.1k | free( tab ); \ |
103 | 11.1k | (tab) = NULL; \ |
104 | 11.1k | } \ |
105 | 13.7k | } 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 | 902k | { |
265 | 902k | p_array->i_count = 0; |
266 | 902k | p_array->pp_elems = NULL; |
267 | 902k | } 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 Line | Count | Source | 264 | 902k | { | 265 | 902k | p_array->i_count = 0; | 266 | | p_array->pp_elems = NULL; | 267 | 902k | } |
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 Line | Count | Source | 264 | 54 | { | 265 | 54 | p_array->i_count = 0; | 266 | | p_array->pp_elems = NULL; | 267 | 54 | } |
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 | 451k | { |
271 | 451k | free( p_array->pp_elems ); |
272 | 451k | vlc_array_init( p_array ); |
273 | 451k | } 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 | 451k | { | 271 | 451k | free( p_array->pp_elems ); | 272 | 451k | vlc_array_init( p_array ); | 273 | 451k | } |
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 | 705k | { |
278 | 705k | return p_array->i_count; |
279 | 705k | } 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 | 705k | { | 278 | 705k | return p_array->i_count; | 279 | 705k | } |
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 | | static inline const void *vlc_array_item_at_index( const vlc_array_t *ar, |
283 | | size_t idx ) |
284 | 297k | { |
285 | 297k | return ar->pp_elems[idx]; |
286 | 297k | } Unexecuted instantiation: demux-run.c:vlc_array_item_at_index Unexecuted instantiation: common.c:vlc_array_item_at_index Unexecuted instantiation: decoder.c:vlc_array_item_at_index Unexecuted instantiation: core.c:vlc_array_item_at_index Unexecuted instantiation: error.c:vlc_array_item_at_index Unexecuted instantiation: asf.c:vlc_array_item_at_index Unexecuted instantiation: avi.c:vlc_array_item_at_index Unexecuted instantiation: es.c:vlc_array_item_at_index Unexecuted instantiation: flac.c:vlc_array_item_at_index Unexecuted instantiation: xiph_metadata.c:vlc_array_item_at_index Unexecuted instantiation: mp4.c:vlc_array_item_at_index Unexecuted instantiation: heif.c:vlc_array_item_at_index Unexecuted instantiation: sap.c:vlc_array_item_at_index Unexecuted instantiation: subtitle.c:vlc_array_item_at_index Unexecuted instantiation: ttml.c:vlc_array_item_at_index Unexecuted instantiation: encttml.c:vlc_array_item_at_index Unexecuted instantiation: substtml.c:vlc_array_item_at_index Unexecuted instantiation: genttml.c:vlc_array_item_at_index subsvtt.c:vlc_array_item_at_index Line | Count | Source | 284 | 297k | { | 285 | 297k | return ar->pp_elems[idx]; | 286 | 297k | } |
Unexecuted instantiation: ogg.c:vlc_array_item_at_index Unexecuted instantiation: subsusf.c:vlc_array_item_at_index Unexecuted instantiation: libvlc.c:vlc_array_item_at_index Unexecuted instantiation: media_tree.c:vlc_array_item_at_index Unexecuted instantiation: modules.c:vlc_array_item_at_index Unexecuted instantiation: entry.c:vlc_array_item_at_index Unexecuted instantiation: dialog.c:vlc_array_item_at_index Unexecuted instantiation: interface.c:vlc_array_item_at_index Unexecuted instantiation: item.c:vlc_array_item_at_index Unexecuted instantiation: access.c:vlc_array_item_at_index Unexecuted instantiation: demux.c:vlc_array_item_at_index Unexecuted instantiation: input.c:vlc_array_item_at_index Unexecuted instantiation: meta.c:vlc_array_item_at_index Unexecuted instantiation: parse.c:vlc_array_item_at_index Unexecuted instantiation: player.c:vlc_array_item_at_index Unexecuted instantiation: stream.c:vlc_array_item_at_index Unexecuted instantiation: stream_extractor.c:vlc_array_item_at_index Unexecuted instantiation: stream_filter.c:vlc_array_item_at_index Unexecuted instantiation: stream_memory.c:vlc_array_item_at_index Unexecuted instantiation: subtitles.c:vlc_array_item_at_index Unexecuted instantiation: video_output.c:vlc_array_item_at_index Unexecuted instantiation: strings.c:vlc_array_item_at_index Unexecuted instantiation: epg.c:vlc_array_item_at_index Unexecuted instantiation: exit.c:vlc_array_item_at_index Unexecuted instantiation: variables.c:vlc_array_item_at_index Unexecuted instantiation: httpcookies.c:vlc_array_item_at_index Unexecuted instantiation: specific.c:vlc_array_item_at_index Unexecuted instantiation: stream_output.c:vlc_array_item_at_index Unexecuted instantiation: vlm.c:vlc_array_item_at_index Unexecuted instantiation: vlm_event.c:vlc_array_item_at_index Unexecuted instantiation: vlmshell.c:vlc_array_item_at_index Unexecuted instantiation: fetcher.c:vlc_array_item_at_index Unexecuted instantiation: es_out.c:vlc_array_item_at_index Unexecuted instantiation: es_out_timeshift.c:vlc_array_item_at_index |
287 | | |
288 | | # define vlc_array_item_at_index(ar, idx) \ |
289 | 297k | _Generic((ar), \ |
290 | 297k | const vlc_array_t *: (vlc_array_item_at_index)(ar, idx), \ |
291 | 297k | vlc_array_t *: (void *)(vlc_array_item_at_index)(ar, idx)) |
292 | | #else |
293 | | static inline void *vlc_array_item_at_index( vlc_array_t *ar, 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*, 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) |
297 | | |
298 | | static inline const void *vlc_array_item_at_index( const vlc_array_t *ar, |
299 | | size_t idx ) |
300 | 0 | { |
301 | 0 | return ar->pp_elems[idx]; |
302 | 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) |
303 | | #endif |
304 | | |
305 | | static inline ssize_t vlc_array_index_of_item( const vlc_array_t *ar, |
306 | | const void *elem ) |
307 | 0 | { |
308 | 0 | for( size_t i = 0; i < ar->i_count; i++ ) |
309 | 0 | { |
310 | 0 | if( ar->pp_elems[i] == elem ) |
311 | 0 | return i; |
312 | 0 | } |
313 | 0 | return -1; |
314 | 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 |
315 | | |
316 | | /* Write */ |
317 | | static inline int vlc_array_insert( vlc_array_t *ar, void *elem, int idx ) |
318 | 0 | { |
319 | 0 | void **pp = (void **)realloc( ar->pp_elems, |
320 | 0 | sizeof( void * ) * (ar->i_count + 1) ); |
321 | 0 | if( unlikely(pp == NULL) ) |
322 | 0 | return -1; |
323 | 0 |
|
324 | 0 | size_t tail = ar->i_count - idx; |
325 | 0 | if( tail > 0 ) |
326 | 0 | memmove( pp + idx + 1, pp + idx, sizeof( void * ) * tail ); |
327 | 0 |
|
328 | 0 | pp[idx] = elem; |
329 | 0 | ar->i_count++; |
330 | 0 | ar->pp_elems = pp; |
331 | 0 | return 0; |
332 | 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 |
333 | | |
334 | | static inline void vlc_array_insert_or_abort( vlc_array_t *ar, void *elem, int idx ) |
335 | 0 | { |
336 | 0 | if( vlc_array_insert( ar, elem, idx ) ) |
337 | 0 | abort(); |
338 | 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 |
339 | | |
340 | | static inline int vlc_array_append( vlc_array_t *ar, void *elem ) |
341 | 313k | { |
342 | 313k | void **pp = (void **)realloc( ar->pp_elems, |
343 | 313k | sizeof( void * ) * (ar->i_count + 1) ); |
344 | 313k | if( unlikely(pp == NULL) ) |
345 | 0 | return -1; |
346 | | |
347 | 313k | pp[ar->i_count++] = elem; |
348 | 313k | ar->pp_elems = pp; |
349 | 313k | return 0; |
350 | 313k | } 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 | 341 | 313k | { | 342 | 313k | void **pp = (void **)realloc( ar->pp_elems, | 343 | 313k | sizeof( void * ) * (ar->i_count + 1) ); | 344 | 313k | if( unlikely(pp == NULL) ) | 345 | 0 | return -1; | 346 | | | 347 | 313k | pp[ar->i_count++] = elem; | 348 | 313k | ar->pp_elems = pp; | 349 | 313k | return 0; | 350 | 313k | } |
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 |
351 | | |
352 | | static inline void vlc_array_append_or_abort( vlc_array_t *ar, void *elem ) |
353 | 0 | { |
354 | 0 | if( vlc_array_append( ar, elem ) != 0 ) |
355 | 0 | abort(); |
356 | 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 |
357 | | |
358 | | static inline void vlc_array_remove( vlc_array_t *ar, size_t idx ) |
359 | 117k | { |
360 | 117k | void **pp = ar->pp_elems; |
361 | 117k | size_t tail = ar->i_count - idx - 1; |
362 | | |
363 | 117k | if( tail > 0 ) |
364 | 0 | memmove( pp + idx, pp + idx + 1, sizeof( void * ) * tail ); |
365 | | |
366 | 117k | ar->i_count--; |
367 | | |
368 | 117k | if( ar->i_count > 0 ) |
369 | 3.84k | { |
370 | 3.84k | pp = (void **)realloc( pp, sizeof( void * ) * ar->i_count ); |
371 | 3.84k | if( likely(pp != NULL) ) |
372 | 3.84k | ar->pp_elems = pp; |
373 | 3.84k | } |
374 | 113k | else |
375 | 113k | { |
376 | 113k | free( pp ); |
377 | 113k | ar->pp_elems = NULL; |
378 | 113k | } |
379 | 117k | } 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 subsvtt.c:vlc_array_remove Line | Count | Source | 359 | 117k | { | 360 | 117k | void **pp = ar->pp_elems; | 361 | 117k | size_t tail = ar->i_count - idx - 1; | 362 | | | 363 | 117k | if( tail > 0 ) | 364 | 0 | memmove( pp + idx, pp + idx + 1, sizeof( void * ) * tail ); | 365 | | | 366 | 117k | ar->i_count--; | 367 | | | 368 | 117k | if( ar->i_count > 0 ) | 369 | 3.84k | { | 370 | 3.84k | pp = (void **)realloc( pp, sizeof( void * ) * ar->i_count ); | 371 | 3.84k | if( likely(pp != NULL) ) | 372 | 3.84k | ar->pp_elems = pp; | 373 | 3.84k | } | 374 | 113k | else | 375 | 113k | { | 376 | 113k | free( pp ); | 377 | | ar->pp_elems = NULL; | 378 | 113k | } | 379 | 117k | } |
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 |
380 | | |
381 | | |
382 | | /************************************************************************ |
383 | | * Dictionaries |
384 | | ************************************************************************/ |
385 | | |
386 | | /* This function is not intended to be crypto-secure, we only want it to be |
387 | | * fast and not suck too much. This one is pretty fast and did 0 collisions |
388 | | * in wenglish's dictionary. |
389 | | */ |
390 | | static inline size_t DictHash(const char *psz_string, size_t hashsize) |
391 | 3.23M | { |
392 | 3.23M | uint64_t i_hash = 0; |
393 | 3.23M | if( psz_string ) |
394 | 3.23M | { |
395 | 31.2M | while( *psz_string ) |
396 | 28.0M | { |
397 | 28.0M | i_hash += *psz_string++; |
398 | 28.0M | i_hash += i_hash << 10; |
399 | 28.0M | i_hash ^= i_hash >> 8; |
400 | 28.0M | } |
401 | 3.23M | } |
402 | 3.23M | return i_hash % hashsize; |
403 | 3.23M | } 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 Line | Count | Source | 391 | 1.80M | { | 392 | 1.80M | uint64_t i_hash = 0; | 393 | 1.80M | if( psz_string ) | 394 | 1.80M | { | 395 | 12.3M | while( *psz_string ) | 396 | 10.5M | { | 397 | 10.5M | i_hash += *psz_string++; | 398 | 10.5M | i_hash += i_hash << 10; | 399 | 10.5M | i_hash ^= i_hash >> 8; | 400 | 10.5M | } | 401 | 1.80M | } | 402 | 1.80M | return i_hash % hashsize; | 403 | 1.80M | } |
Unexecuted instantiation: encttml.c:DictHash Line | Count | Source | 391 | 1.34M | { | 392 | 1.34M | uint64_t i_hash = 0; | 393 | 1.34M | if( psz_string ) | 394 | 1.34M | { | 395 | 17.4M | while( *psz_string ) | 396 | 16.0M | { | 397 | 16.0M | i_hash += *psz_string++; | 398 | 16.0M | i_hash += i_hash << 10; | 399 | 16.0M | i_hash ^= i_hash >> 8; | 400 | 16.0M | } | 401 | 1.34M | } | 402 | 1.34M | return i_hash % hashsize; | 403 | 1.34M | } |
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 Line | Count | Source | 391 | 79.4k | { | 392 | 79.4k | uint64_t i_hash = 0; | 393 | 79.4k | if( psz_string ) | 394 | 79.4k | { | 395 | 1.43M | while( *psz_string ) | 396 | 1.35M | { | 397 | 1.35M | i_hash += *psz_string++; | 398 | 1.35M | i_hash += i_hash << 10; | 399 | 1.35M | i_hash ^= i_hash >> 8; | 400 | 1.35M | } | 401 | 79.4k | } | 402 | 79.4k | return i_hash % hashsize; | 403 | 79.4k | } |
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 |
404 | | |
405 | | typedef struct vlc_dictionary_entry_t |
406 | | { |
407 | | char * psz_key; |
408 | | void * p_value; |
409 | | struct vlc_dictionary_entry_t * p_next; |
410 | | } vlc_dictionary_entry_t; |
411 | | |
412 | | typedef struct vlc_dictionary_t |
413 | | { |
414 | | size_t i_size; |
415 | | vlc_dictionary_entry_t ** p_entries; |
416 | | } vlc_dictionary_t; |
417 | | |
418 | | static void * const kVLCDictionaryNotFound = NULL; |
419 | | |
420 | | static inline void vlc_dictionary_init(vlc_dictionary_t * p_dict, size_t i_size) |
421 | 1.23M | { |
422 | 1.23M | p_dict->p_entries = NULL; |
423 | | |
424 | 1.23M | if( i_size > 0 ) |
425 | 578k | { |
426 | 578k | p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) ); |
427 | 578k | if( !p_dict->p_entries ) |
428 | 0 | i_size = 0; |
429 | 578k | } |
430 | 1.23M | p_dict->i_size = i_size; |
431 | 1.23M | } 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 | 421 | 1.03M | { | 422 | 1.03M | p_dict->p_entries = NULL; | 423 | | | 424 | 1.03M | if( i_size > 0 ) | 425 | 474k | { | 426 | 474k | p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) ); | 427 | 474k | if( !p_dict->p_entries ) | 428 | 0 | i_size = 0; | 429 | 474k | } | 430 | 1.03M | p_dict->i_size = i_size; | 431 | 1.03M | } |
Unexecuted instantiation: encttml.c:vlc_dictionary_init substtml.c:vlc_dictionary_init Line | Count | Source | 421 | 164k | { | 422 | 164k | p_dict->p_entries = NULL; | 423 | | | 424 | 164k | if( i_size > 0 ) | 425 | 99.9k | { | 426 | 99.9k | p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) ); | 427 | 99.9k | if( !p_dict->p_entries ) | 428 | 0 | i_size = 0; | 429 | 99.9k | } | 430 | 164k | p_dict->i_size = i_size; | 431 | 164k | } |
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 | 421 | 30.4k | { | 422 | 30.4k | p_dict->p_entries = NULL; | 423 | | | 424 | 30.4k | if( i_size > 0 ) | 425 | 4.44k | { | 426 | 4.44k | p_dict->p_entries = (vlc_dictionary_entry_t **)calloc( i_size, sizeof(*p_dict->p_entries) ); | 427 | 4.44k | if( !p_dict->p_entries ) | 428 | 0 | i_size = 0; | 429 | 4.44k | } | 430 | 30.4k | p_dict->i_size = i_size; | 431 | 30.4k | } |
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 |
432 | | |
433 | | static inline void vlc_dictionary_clear( vlc_dictionary_t * p_dict, |
434 | | void ( * pf_free )( void * p_data, void * p_obj ), |
435 | | void * p_obj ) |
436 | 733k | { |
437 | 733k | if( p_dict->p_entries ) |
438 | 578k | { |
439 | 1.54M | for (size_t i = 0; i < p_dict->i_size; i++) |
440 | 964k | { |
441 | 964k | vlc_dictionary_entry_t * p_current, * p_next; |
442 | 964k | p_current = p_dict->p_entries[i]; |
443 | 2.59M | while( p_current ) |
444 | 1.63M | { |
445 | 1.63M | p_next = p_current->p_next; |
446 | 1.63M | if( pf_free != NULL ) |
447 | 904k | ( * pf_free )( p_current->p_value, p_obj ); |
448 | 1.63M | free( p_current->psz_key ); |
449 | 1.63M | free( p_current ); |
450 | 1.63M | p_current = p_next; |
451 | 1.63M | } |
452 | 964k | } |
453 | 578k | free( p_dict->p_entries ); |
454 | 578k | p_dict->p_entries = NULL; |
455 | 578k | } |
456 | 733k | p_dict->i_size = 0; |
457 | 733k | } 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 | 436 | 583k | { | 437 | 583k | if( p_dict->p_entries ) | 438 | 474k | { | 439 | 1.04M | for (size_t i = 0; i < p_dict->i_size; i++) | 440 | 569k | { | 441 | 569k | vlc_dictionary_entry_t * p_current, * p_next; | 442 | 569k | p_current = p_dict->p_entries[i]; | 443 | 1.56M | while( p_current ) | 444 | 998k | { | 445 | 998k | p_next = p_current->p_next; | 446 | 998k | if( pf_free != NULL ) | 447 | 896k | ( * pf_free )( p_current->p_value, p_obj ); | 448 | 998k | free( p_current->psz_key ); | 449 | 998k | free( p_current ); | 450 | 998k | p_current = p_next; | 451 | 998k | } | 452 | 569k | } | 453 | 474k | free( p_dict->p_entries ); | 454 | | p_dict->p_entries = NULL; | 455 | 474k | } | 456 | 583k | p_dict->i_size = 0; | 457 | 583k | } |
Unexecuted instantiation: encttml.c:vlc_dictionary_clear substtml.c:vlc_dictionary_clear Line | Count | Source | 436 | 123k | { | 437 | 123k | if( p_dict->p_entries ) | 438 | 99.9k | { | 439 | 487k | for (size_t i = 0; i < p_dict->i_size; i++) | 440 | 387k | { | 441 | 387k | vlc_dictionary_entry_t * p_current, * p_next; | 442 | 387k | p_current = p_dict->p_entries[i]; | 443 | 1.01M | while( p_current ) | 444 | 624k | { | 445 | 624k | p_next = p_current->p_next; | 446 | 624k | if( pf_free != NULL ) | 447 | 0 | ( * pf_free )( p_current->p_value, p_obj ); | 448 | 624k | free( p_current->psz_key ); | 449 | 624k | free( p_current ); | 450 | 624k | p_current = p_next; | 451 | 624k | } | 452 | 387k | } | 453 | 99.9k | free( p_dict->p_entries ); | 454 | | p_dict->p_entries = NULL; | 455 | 99.9k | } | 456 | 123k | p_dict->i_size = 0; | 457 | 123k | } |
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 | 436 | 26.4k | { | 437 | 26.4k | if( p_dict->p_entries ) | 438 | 4.44k | { | 439 | 11.8k | for (size_t i = 0; i < p_dict->i_size; i++) | 440 | 7.44k | { | 441 | 7.44k | vlc_dictionary_entry_t * p_current, * p_next; | 442 | 7.44k | p_current = p_dict->p_entries[i]; | 443 | 18.1k | while( p_current ) | 444 | 10.6k | { | 445 | 10.6k | p_next = p_current->p_next; | 446 | 10.6k | if( pf_free != NULL ) | 447 | 8.03k | ( * pf_free )( p_current->p_value, p_obj ); | 448 | 10.6k | free( p_current->psz_key ); | 449 | 10.6k | free( p_current ); | 450 | 10.6k | p_current = p_next; | 451 | 10.6k | } | 452 | 7.44k | } | 453 | 4.44k | free( p_dict->p_entries ); | 454 | | p_dict->p_entries = NULL; | 455 | 4.44k | } | 456 | 26.4k | p_dict->i_size = 0; | 457 | 26.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 |
458 | | |
459 | | static inline int |
460 | | vlc_dictionary_has_key( const vlc_dictionary_t * p_dict, const char * psz_key ) |
461 | 727k | { |
462 | 727k | if( !p_dict->p_entries ) |
463 | 41.2k | return 0; |
464 | | |
465 | 686k | size_t i_pos = DictHash(psz_key, p_dict->i_size); |
466 | 686k | const vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; |
467 | 1.25M | for( ; p_entry != NULL; p_entry = p_entry->p_next ) |
468 | 1.00M | { |
469 | 1.00M | if( !strcmp( psz_key, p_entry->psz_key ) ) |
470 | 438k | break; |
471 | 1.00M | } |
472 | 686k | return p_entry != NULL; |
473 | 727k | } 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 | 461 | 727k | { | 462 | 727k | if( !p_dict->p_entries ) | 463 | 41.2k | return 0; | 464 | | | 465 | 686k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 466 | 686k | const vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; | 467 | 1.25M | for( ; p_entry != NULL; p_entry = p_entry->p_next ) | 468 | 1.00M | { | 469 | 1.00M | if( !strcmp( psz_key, p_entry->psz_key ) ) | 470 | 438k | break; | 471 | 1.00M | } | 472 | | return p_entry != NULL; | 473 | 727k | } |
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 |
474 | | |
475 | | static inline void * |
476 | | vlc_dictionary_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_key ) |
477 | 1.23M | { |
478 | 1.23M | if( !p_dict->p_entries ) |
479 | 327k | return kVLCDictionaryNotFound; |
480 | | |
481 | 903k | size_t i_pos = DictHash(psz_key, p_dict->i_size); |
482 | 903k | vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; |
483 | | |
484 | 903k | if( !p_entry ) |
485 | 25.0k | return kVLCDictionaryNotFound; |
486 | | |
487 | | /* Make sure we return the right item. (Hash collision) */ |
488 | 1.59M | do { |
489 | 1.59M | if( !strcmp( psz_key, p_entry->psz_key ) ) |
490 | 178k | return p_entry->p_value; |
491 | 1.41M | p_entry = p_entry->p_next; |
492 | 1.41M | } while( p_entry ); |
493 | | |
494 | 700k | return kVLCDictionaryNotFound; |
495 | 878k | } 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 | 477 | 1.06M | { | 478 | 1.06M | if( !p_dict->p_entries ) | 479 | 258k | return kVLCDictionaryNotFound; | 480 | | | 481 | 808k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 482 | 808k | vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; | 483 | | | 484 | 808k | if( !p_entry ) | 485 | 9.31k | return kVLCDictionaryNotFound; | 486 | | | 487 | | /* Make sure we return the right item. (Hash collision) */ | 488 | 1.45M | do { | 489 | 1.45M | if( !strcmp( psz_key, p_entry->psz_key ) ) | 490 | 159k | return p_entry->p_value; | 491 | 1.29M | p_entry = p_entry->p_next; | 492 | 1.29M | } while( p_entry ); | 493 | | | 494 | 639k | return kVLCDictionaryNotFound; | 495 | 798k | } |
Unexecuted instantiation: encttml.c:vlc_dictionary_value_for_key substtml.c:vlc_dictionary_value_for_key Line | Count | Source | 477 | 34.3k | { | 478 | 34.3k | if( !p_dict->p_entries ) | 479 | 0 | return kVLCDictionaryNotFound; | 480 | | | 481 | 34.3k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 482 | 34.3k | vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; | 483 | | | 484 | 34.3k | if( !p_entry ) | 485 | 10.1k | return kVLCDictionaryNotFound; | 486 | | | 487 | | /* Make sure we return the right item. (Hash collision) */ | 488 | 35.1k | do { | 489 | 35.1k | if( !strcmp( psz_key, p_entry->psz_key ) ) | 490 | 13.8k | return p_entry->p_value; | 491 | 21.3k | p_entry = p_entry->p_next; | 492 | 21.3k | } while( p_entry ); | 493 | | | 494 | 10.4k | return kVLCDictionaryNotFound; | 495 | 24.2k | } |
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 | 477 | 130k | { | 478 | 130k | if( !p_dict->p_entries ) | 479 | 68.7k | return kVLCDictionaryNotFound; | 480 | | | 481 | 61.3k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 482 | 61.3k | vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; | 483 | | | 484 | 61.3k | if( !p_entry ) | 485 | 5.58k | return kVLCDictionaryNotFound; | 486 | | | 487 | | /* Make sure we return the right item. (Hash collision) */ | 488 | 102k | do { | 489 | 102k | if( !strcmp( psz_key, p_entry->psz_key ) ) | 490 | 4.95k | return p_entry->p_value; | 491 | 97.6k | p_entry = p_entry->p_next; | 492 | 97.6k | } while( p_entry ); | 493 | | | 494 | 50.8k | return kVLCDictionaryNotFound; | 495 | 55.7k | } |
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 |
496 | | |
497 | | static inline size_t |
498 | | vlc_dictionary_keys_count( const vlc_dictionary_t * p_dict ) |
499 | 205 | { |
500 | 205 | vlc_dictionary_entry_t * p_entry; |
501 | 205 | size_t i, count = 0; |
502 | | |
503 | 205 | if( !p_dict->p_entries ) |
504 | 14 | return 0; |
505 | | |
506 | 767 | for( i = 0; i < p_dict->i_size; i++ ) |
507 | 576 | { |
508 | 1.10k | for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next ) count++; |
509 | 576 | } |
510 | 191 | return count; |
511 | 205 | } 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 | 499 | 205 | { | 500 | 205 | vlc_dictionary_entry_t * p_entry; | 501 | 205 | size_t i, count = 0; | 502 | | | 503 | 205 | if( !p_dict->p_entries ) | 504 | 14 | return 0; | 505 | | | 506 | 767 | for( i = 0; i < p_dict->i_size; i++ ) | 507 | 576 | { | 508 | 1.10k | for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next ) count++; | 509 | 576 | } | 510 | 191 | return count; | 511 | 205 | } |
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 |
512 | | |
513 | | static inline bool |
514 | | vlc_dictionary_is_empty( const vlc_dictionary_t * p_dict ) |
515 | 49.2k | { |
516 | 49.2k | if( p_dict->p_entries ) |
517 | 50.2k | for (size_t i = 0; i < p_dict->i_size; i++) |
518 | 50.2k | if( p_dict->p_entries[i] ) |
519 | 38.7k | return false; |
520 | 10.4k | return true; |
521 | 49.2k | } 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 | 515 | 49.2k | { | 516 | 49.2k | if( p_dict->p_entries ) | 517 | 50.2k | for (size_t i = 0; i < p_dict->i_size; i++) | 518 | 50.2k | if( p_dict->p_entries[i] ) | 519 | 38.7k | return false; | 520 | 10.4k | return true; | 521 | 49.2k | } |
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 |
522 | | |
523 | | static inline char ** |
524 | | vlc_dictionary_all_keys( const vlc_dictionary_t * p_dict ) |
525 | 205 | { |
526 | 205 | vlc_dictionary_entry_t * p_entry; |
527 | 205 | char ** ppsz_ret; |
528 | 205 | size_t i, count = vlc_dictionary_keys_count(p_dict); |
529 | | |
530 | 205 | ppsz_ret = (char**)malloc(sizeof(char *) * (count + 1)); |
531 | 205 | if( unlikely(!ppsz_ret) ) |
532 | 0 | return NULL; |
533 | | |
534 | 205 | count = 0; |
535 | 781 | for( i = 0; i < p_dict->i_size; i++ ) |
536 | 576 | { |
537 | 1.10k | for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next ) |
538 | 527 | ppsz_ret[count++] = strdup( p_entry->psz_key ); |
539 | 576 | } |
540 | 205 | ppsz_ret[count] = NULL; |
541 | 205 | return ppsz_ret; |
542 | 205 | } 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 | 525 | 205 | { | 526 | 205 | vlc_dictionary_entry_t * p_entry; | 527 | 205 | char ** ppsz_ret; | 528 | 205 | size_t i, count = vlc_dictionary_keys_count(p_dict); | 529 | | | 530 | 205 | ppsz_ret = (char**)malloc(sizeof(char *) * (count + 1)); | 531 | 205 | if( unlikely(!ppsz_ret) ) | 532 | 0 | return NULL; | 533 | | | 534 | 205 | count = 0; | 535 | 781 | for( i = 0; i < p_dict->i_size; i++ ) | 536 | 576 | { | 537 | 1.10k | for( p_entry = p_dict->p_entries[i]; p_entry; p_entry = p_entry->p_next ) | 538 | 527 | ppsz_ret[count++] = strdup( p_entry->psz_key ); | 539 | 576 | } | 540 | | ppsz_ret[count] = NULL; | 541 | 205 | return ppsz_ret; | 542 | 205 | } |
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 |
543 | | |
544 | | static inline void |
545 | | vlc_dictionary_insert_impl_( vlc_dictionary_t * p_dict, const char * psz_key, |
546 | | void * p_value, bool rebuild ) |
547 | 1.63M | { |
548 | 1.63M | if( !p_dict->p_entries ) |
549 | 497k | vlc_dictionary_init( p_dict, 1 ); |
550 | | |
551 | 1.63M | size_t i_pos = DictHash(psz_key, p_dict->i_size); |
552 | 1.63M | vlc_dictionary_entry_t * p_entry; |
553 | | |
554 | 1.63M | p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry)); |
555 | 1.63M | p_entry->psz_key = strdup( psz_key ); |
556 | 1.63M | p_entry->p_value = p_value; |
557 | 1.63M | p_entry->p_next = p_dict->p_entries[i_pos]; |
558 | 1.63M | p_dict->p_entries[i_pos] = p_entry; |
559 | 1.63M | if( rebuild ) |
560 | 1.21M | { |
561 | | /* Count how many items there was */ |
562 | 1.21M | int count; |
563 | 2.19M | for( count = 1; p_entry->p_next; count++ ) |
564 | 980k | p_entry = p_entry->p_next; |
565 | 1.21M | if( count > 3 ) /* XXX: this need tuning */ |
566 | 71.9k | { |
567 | | /* Here it starts to be not good, rebuild a bigger dictionary */ |
568 | 71.9k | struct vlc_dictionary_t new_dict; |
569 | 71.9k | size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */ |
570 | 71.9k | size_t i; |
571 | 71.9k | vlc_dictionary_init( &new_dict, i_new_size ); |
572 | 252k | for( i = 0; i < p_dict->i_size; i++ ) |
573 | 180k | { |
574 | 180k | p_entry = p_dict->p_entries[i]; |
575 | 599k | while( p_entry ) |
576 | 419k | { |
577 | 419k | vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key, |
578 | 419k | p_entry->p_value, |
579 | 419k | false /* To avoid multiple rebuild loop */); |
580 | 419k | p_entry = p_entry->p_next; |
581 | 419k | } |
582 | 180k | } |
583 | | |
584 | 71.9k | vlc_dictionary_clear( p_dict, NULL, NULL ); |
585 | 71.9k | p_dict->i_size = new_dict.i_size; |
586 | 71.9k | p_dict->p_entries = new_dict.p_entries; |
587 | 71.9k | } |
588 | 1.21M | } |
589 | 1.63M | } 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 | 547 | 998k | { | 548 | 998k | if( !p_dict->p_entries ) | 549 | 452k | vlc_dictionary_init( p_dict, 1 ); | 550 | | | 551 | 998k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 552 | 998k | vlc_dictionary_entry_t * p_entry; | 553 | | | 554 | 998k | p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry)); | 555 | 998k | p_entry->psz_key = strdup( psz_key ); | 556 | 998k | p_entry->p_value = p_value; | 557 | 998k | p_entry->p_next = p_dict->p_entries[i_pos]; | 558 | 998k | p_dict->p_entries[i_pos] = p_entry; | 559 | 998k | if( rebuild ) | 560 | 896k | { | 561 | | /* Count how many items there was */ | 562 | 896k | int count; | 563 | 1.46M | for( count = 1; p_entry->p_next; count++ ) | 564 | 570k | p_entry = p_entry->p_next; | 565 | 896k | if( count > 3 ) /* XXX: this need tuning */ | 566 | 21.9k | { | 567 | | /* Here it starts to be not good, rebuild a bigger dictionary */ | 568 | 21.9k | struct vlc_dictionary_t new_dict; | 569 | 21.9k | size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */ | 570 | 21.9k | size_t i; | 571 | 21.9k | vlc_dictionary_init( &new_dict, i_new_size ); | 572 | 62.6k | for( i = 0; i < p_dict->i_size; i++ ) | 573 | 40.6k | { | 574 | 40.6k | p_entry = p_dict->p_entries[i]; | 575 | 142k | while( p_entry ) | 576 | 102k | { | 577 | 102k | vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key, | 578 | 102k | p_entry->p_value, | 579 | 102k | false /* To avoid multiple rebuild loop */); | 580 | 102k | p_entry = p_entry->p_next; | 581 | 102k | } | 582 | 40.6k | } | 583 | | | 584 | 21.9k | vlc_dictionary_clear( p_dict, NULL, NULL ); | 585 | 21.9k | p_dict->i_size = new_dict.i_size; | 586 | 21.9k | p_dict->p_entries = new_dict.p_entries; | 587 | 21.9k | } | 588 | 896k | } | 589 | 998k | } |
Unexecuted instantiation: encttml.c:vlc_dictionary_insert_impl_ substtml.c:vlc_dictionary_insert_impl_ Line | Count | Source | 547 | 624k | { | 548 | 624k | if( !p_dict->p_entries ) | 549 | 41.2k | vlc_dictionary_init( p_dict, 1 ); | 550 | | | 551 | 624k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 552 | 624k | vlc_dictionary_entry_t * p_entry; | 553 | | | 554 | 624k | p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry)); | 555 | 624k | p_entry->psz_key = strdup( psz_key ); | 556 | 624k | p_entry->p_value = p_value; | 557 | 624k | p_entry->p_next = p_dict->p_entries[i_pos]; | 558 | 624k | p_dict->p_entries[i_pos] = p_entry; | 559 | 624k | if( rebuild ) | 560 | 309k | { | 561 | | /* Count how many items there was */ | 562 | 309k | int count; | 563 | 708k | for( count = 1; p_entry->p_next; count++ ) | 564 | 398k | p_entry = p_entry->p_next; | 565 | 309k | if( count > 3 ) /* XXX: this need tuning */ | 566 | 49.4k | { | 567 | | /* Here it starts to be not good, rebuild a bigger dictionary */ | 568 | 49.4k | struct vlc_dictionary_t new_dict; | 569 | 49.4k | size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */ | 570 | 49.4k | size_t i; | 571 | 49.4k | vlc_dictionary_init( &new_dict, i_new_size ); | 572 | 187k | for( i = 0; i < p_dict->i_size; i++ ) | 573 | 138k | { | 574 | 138k | p_entry = p_dict->p_entries[i]; | 575 | 452k | while( p_entry ) | 576 | 314k | { | 577 | 314k | vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key, | 578 | 314k | p_entry->p_value, | 579 | 314k | false /* To avoid multiple rebuild loop */); | 580 | 314k | p_entry = p_entry->p_next; | 581 | 314k | } | 582 | 138k | } | 583 | | | 584 | 49.4k | vlc_dictionary_clear( p_dict, NULL, NULL ); | 585 | 49.4k | p_dict->i_size = new_dict.i_size; | 586 | 49.4k | p_dict->p_entries = new_dict.p_entries; | 587 | 49.4k | } | 588 | 309k | } | 589 | 624k | } |
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 | 547 | 14.3k | { | 548 | 14.3k | if( !p_dict->p_entries ) | 549 | 3.93k | vlc_dictionary_init( p_dict, 1 ); | 550 | | | 551 | 14.3k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 552 | 14.3k | vlc_dictionary_entry_t * p_entry; | 553 | | | 554 | 14.3k | p_entry = (vlc_dictionary_entry_t *)malloc(sizeof(*p_entry)); | 555 | 14.3k | p_entry->psz_key = strdup( psz_key ); | 556 | 14.3k | p_entry->p_value = p_value; | 557 | 14.3k | p_entry->p_next = p_dict->p_entries[i_pos]; | 558 | 14.3k | p_dict->p_entries[i_pos] = p_entry; | 559 | 14.3k | if( rebuild ) | 560 | 11.7k | { | 561 | | /* Count how many items there was */ | 562 | 11.7k | int count; | 563 | 22.2k | for( count = 1; p_entry->p_next; count++ ) | 564 | 10.4k | p_entry = p_entry->p_next; | 565 | 11.7k | if( count > 3 ) /* XXX: this need tuning */ | 566 | 510 | { | 567 | | /* Here it starts to be not good, rebuild a bigger dictionary */ | 568 | 510 | struct vlc_dictionary_t new_dict; | 569 | 510 | size_t i_new_size = (p_dict->i_size + 2) * 3 / 2; /* XXX: this need tuning */ | 570 | 510 | size_t i; | 571 | 510 | vlc_dictionary_init( &new_dict, i_new_size ); | 572 | 1.95k | for( i = 0; i < p_dict->i_size; i++ ) | 573 | 1.44k | { | 574 | 1.44k | p_entry = p_dict->p_entries[i]; | 575 | 4.07k | while( p_entry ) | 576 | 2.63k | { | 577 | 2.63k | vlc_dictionary_insert_impl_( &new_dict, p_entry->psz_key, | 578 | 2.63k | p_entry->p_value, | 579 | 2.63k | false /* To avoid multiple rebuild loop */); | 580 | 2.63k | p_entry = p_entry->p_next; | 581 | 2.63k | } | 582 | 1.44k | } | 583 | | | 584 | 510 | vlc_dictionary_clear( p_dict, NULL, NULL ); | 585 | 510 | p_dict->i_size = new_dict.i_size; | 586 | 510 | p_dict->p_entries = new_dict.p_entries; | 587 | 510 | } | 588 | 11.7k | } | 589 | 14.3k | } |
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_ |
590 | | |
591 | | static inline void |
592 | | vlc_dictionary_insert( vlc_dictionary_t * p_dict, const char * psz_key, void * p_value ) |
593 | 1.21M | { |
594 | 1.21M | vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true ); |
595 | 1.21M | } 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 | 593 | 896k | { | 594 | | vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true ); | 595 | 896k | } |
Unexecuted instantiation: encttml.c:vlc_dictionary_insert substtml.c:vlc_dictionary_insert Line | Count | Source | 593 | 309k | { | 594 | | vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true ); | 595 | 309k | } |
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 | 593 | 11.7k | { | 594 | | vlc_dictionary_insert_impl_( p_dict, psz_key, p_value, true ); | 595 | 11.7k | } |
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 |
596 | | |
597 | | static inline void |
598 | | vlc_dictionary_remove_value_for_key( const vlc_dictionary_t * p_dict, const char * psz_key, |
599 | | void ( * pf_free )( void * p_data, void * p_obj ), |
600 | | void * p_obj ) |
601 | 3.72k | { |
602 | 3.72k | if( !p_dict->p_entries ) |
603 | 0 | return; |
604 | | |
605 | 3.72k | size_t i_pos = DictHash(psz_key, p_dict->i_size); |
606 | 3.72k | vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; |
607 | 3.72k | vlc_dictionary_entry_t * p_prev; |
608 | | |
609 | 3.72k | if( !p_entry ) |
610 | 0 | return; /* Not found, nothing to do */ |
611 | | |
612 | | /* Hash collision */ |
613 | 3.72k | p_prev = NULL; |
614 | 6.29k | do { |
615 | 6.29k | if( !strcmp( psz_key, p_entry->psz_key ) ) |
616 | 3.72k | { |
617 | 3.72k | if( pf_free != NULL ) |
618 | 3.72k | ( * pf_free )( p_entry->p_value, p_obj ); |
619 | 3.72k | if( !p_prev ) |
620 | 1.86k | p_dict->p_entries[i_pos] = p_entry->p_next; |
621 | 1.85k | else |
622 | 1.85k | p_prev->p_next = p_entry->p_next; |
623 | 3.72k | free( p_entry->psz_key ); |
624 | 3.72k | free( p_entry ); |
625 | 3.72k | return; |
626 | 3.72k | } |
627 | 2.57k | p_prev = p_entry; |
628 | 2.57k | p_entry = p_entry->p_next; |
629 | 2.57k | } while( p_entry ); |
630 | | |
631 | | /* No key was found */ |
632 | 3.72k | } 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 | 601 | 3.72k | { | 602 | 3.72k | if( !p_dict->p_entries ) | 603 | 0 | return; | 604 | | | 605 | 3.72k | size_t i_pos = DictHash(psz_key, p_dict->i_size); | 606 | 3.72k | vlc_dictionary_entry_t * p_entry = p_dict->p_entries[i_pos]; | 607 | 3.72k | vlc_dictionary_entry_t * p_prev; | 608 | | | 609 | 3.72k | if( !p_entry ) | 610 | 0 | return; /* Not found, nothing to do */ | 611 | | | 612 | | /* Hash collision */ | 613 | 3.72k | p_prev = NULL; | 614 | 6.29k | do { | 615 | 6.29k | if( !strcmp( psz_key, p_entry->psz_key ) ) | 616 | 3.72k | { | 617 | 3.72k | if( pf_free != NULL ) | 618 | 3.72k | ( * pf_free )( p_entry->p_value, p_obj ); | 619 | 3.72k | if( !p_prev ) | 620 | 1.86k | p_dict->p_entries[i_pos] = p_entry->p_next; | 621 | 1.85k | else | 622 | 1.85k | p_prev->p_next = p_entry->p_next; | 623 | 3.72k | free( p_entry->psz_key ); | 624 | 3.72k | free( p_entry ); | 625 | 3.72k | return; | 626 | 3.72k | } | 627 | 2.57k | p_prev = p_entry; | 628 | 2.57k | p_entry = p_entry->p_next; | 629 | 2.57k | } while( p_entry ); | 630 | | | 631 | | /* No key was found */ | 632 | 3.72k | } |
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 |
633 | | |
634 | | #ifdef __cplusplus |
635 | | // C++ helpers |
636 | | template <typename T> |
637 | | void vlc_delete_all( T &container ) |
638 | 14.2k | { |
639 | 14.2k | typename T::iterator it = container.begin(); |
640 | 15.3k | while ( it != container.end() ) |
641 | 1.10k | { |
642 | 1.10k | delete *it; |
643 | 1.10k | ++it; |
644 | 1.10k | } |
645 | 14.2k | container.clear(); |
646 | 14.2k | } 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 | 638 | 4.11k | { | 639 | 4.11k | typename T::iterator it = container.begin(); | 640 | 4.42k | while ( it != container.end() ) | 641 | 307 | { | 642 | 307 | delete *it; | 643 | 307 | ++it; | 644 | 307 | } | 645 | 4.11k | container.clear(); | 646 | 4.11k | } |
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 | 638 | 4.11k | { | 639 | 4.11k | typename T::iterator it = container.begin(); | 640 | 4.11k | while ( it != container.end() ) | 641 | 0 | { | 642 | 0 | delete *it; | 643 | 0 | ++it; | 644 | 0 | } | 645 | 4.11k | container.clear(); | 646 | 4.11k | } |
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 | 638 | 4.11k | { | 639 | 4.11k | typename T::iterator it = container.begin(); | 640 | 4.11k | while ( it != container.end() ) | 641 | 0 | { | 642 | 0 | delete *it; | 643 | 0 | ++it; | 644 | 0 | } | 645 | 4.11k | container.clear(); | 646 | 4.11k | } |
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*> >&) Line | Count | Source | 638 | 922 | { | 639 | 922 | typename T::iterator it = container.begin(); | 640 | 1.10k | while ( it != container.end() ) | 641 | 186 | { | 642 | 186 | delete *it; | 643 | 186 | ++it; | 644 | 186 | } | 645 | 922 | container.clear(); | 646 | 922 | } |
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*> >&) Line | Count | Source | 638 | 922 | { | 639 | 922 | typename T::iterator it = container.begin(); | 640 | 1.53k | while ( it != container.end() ) | 641 | 615 | { | 642 | 615 | delete *it; | 643 | 615 | ++it; | 644 | 615 | } | 645 | 922 | container.clear(); | 646 | 922 | } |
|
647 | | |
648 | | #endif |
649 | | |
650 | | #endif |