../3rdparty/harfbuzz/src/harfbuzz-buffer.c

Switch to Source codePreprocessed file
LineSource CodeCoverage
1static HB_Error -
2hb_buffer_ensure( HB_Buffer buffer, -
3 HB_UInt size ) -
4{ -
5 HB_UInt new_allocated = buffer->allocated; -
6 -
7 if (size > new_allocated)
evaluated: size > new_allocated
TRUEFALSE
yes
Evaluation Count:365
yes
Evaluation Count:12884254
365-12884254
8 { -
9 HB_Error error; -
10 -
11 while (size > new_allocated)
evaluated: size > new_allocated
TRUEFALSE
yes
Evaluation Count:365
yes
Evaluation Count:365
365
12 new_allocated += (new_allocated >> 1) + 8;
executed: new_allocated += (new_allocated >> 1) + 8;
Execution Count:365
365
13 -
14 if ( buffer->positions )
evaluated: buffer->positions
TRUEFALSE
yes
Evaluation Count:182
yes
Evaluation Count:183
182-183
15 { -
16 if ( ( (buffer->positions) = _hb_realloc( (buffer->positions), ((new_allocated)*sizeof(HB_PositionRec)), &error ), error != 0 ) )
partially evaluated: ( (buffer->positions) = _hb_realloc( (buffer->positions), ((new_allocated)*sizeof(HB_PositionRec)), &error ), error != 0 )
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:182
0-182
17 return error;
never executed: return error;
0
18 }
executed: }
Execution Count:182
182
19 -
20 if ( ( (buffer->in_string) = _hb_realloc( (buffer->in_string), ((new_allocated)*sizeof(HB_GlyphItemRec)), &error ), error != 0 ) )
partially evaluated: ( (buffer->in_string) = _hb_realloc( (buffer->in_string), ((new_allocated)*sizeof(HB_GlyphItemRec)), &error ), error != 0 )
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:365
0-365
21 return error;
never executed: return error;
0
22 -
23 if ( buffer->separate_out )
partially evaluated: buffer->separate_out
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:365
0-365
24 { -
25 if ( ( (buffer->alt_string) = _hb_realloc( (buffer->alt_string), ((new_allocated)*sizeof(HB_GlyphItemRec)), &error ), error != 0 ) )
never evaluated: ( (buffer->alt_string) = _hb_realloc( (buffer->alt_string), ((new_allocated)*sizeof(HB_GlyphItemRec)), &error ), error != 0 )
0
26 return error;
never executed: return error;
0
27 -
28 buffer->out_string = buffer->alt_string; -
29 }
never executed: }
0
30 else -
31 { -
32 buffer->out_string = buffer->in_string; -
33 -
34 if ( buffer->alt_string )
evaluated: buffer->alt_string
TRUEFALSE
yes
Evaluation Count:25
yes
Evaluation Count:340
25-340
35 { -
36 if ( ( (buffer->alt_string) = _hb_realloc( (buffer->alt_string), ((new_allocated)*sizeof(HB_GlyphItemRec)), &error ), error != 0 ) )
partially evaluated: ( (buffer->alt_string) = _hb_realloc( (buffer->alt_string), ((new_allocated)*sizeof(HB_GlyphItemRec)), &error ), error != 0 )
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:25
0-25
37 return error;
never executed: return error;
0
38 }
executed: }
Execution Count:25
25
39 }
executed: }
Execution Count:365
365
40 -
41 buffer->allocated = new_allocated; -
42 }
executed: }
Execution Count:365
365
43 -
44 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:12884619
12884619
45} -
46 -
47static HB_Error -
48hb_buffer_duplicate_out_buffer( HB_Buffer buffer ) -
49{ -
50 if ( !buffer->alt_string )
evaluated: !buffer->alt_string
TRUEFALSE
yes
Evaluation Count:25
yes
Evaluation Count:9851
25-9851
51 { -
52 HB_Error error; -
53 -
54 if ( ( (buffer->alt_string) = _hb_alloc( (buffer->allocated)*sizeof(HB_GlyphItemRec), &error ), error != 0 ) )
partially evaluated: ( (buffer->alt_string) = _hb_alloc( (buffer->allocated)*sizeof(HB_GlyphItemRec), &error ), error != 0 )
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:25
0-25
55 return error;
never executed: return error;
0
56 }
executed: }
Execution Count:25
25
57 -
58 buffer->out_string = buffer->alt_string; -
59 memcpy( buffer->out_string, buffer->in_string, buffer->out_length * sizeof (buffer->out_string[0]) ); -
60 buffer->separate_out = (!0); -
61 -
62 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:9876
9876
63} -
64 -
65 -
66 -
67HB_Error -
68hb_buffer_new( HB_Buffer *pbuffer ) -
69{ -
70 HB_Buffer buffer; -
71 HB_Error error; -
72 -
73 if ( ( (buffer) = _hb_alloc( sizeof( HB_BufferRec ), &error ), error != 0 ) )
partially evaluated: ( (buffer) = _hb_alloc( sizeof( HB_BufferRec ), &error ), error != 0 )
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:218
0-218
74 return error;
never executed: return error;
0
75 -
76 buffer->allocated = 0; -
77 buffer->in_string = ((void *)0); -
78 buffer->alt_string = ((void *)0); -
79 buffer->positions = ((void *)0); -
80 -
81 hb_buffer_clear( buffer ); -
82 -
83 *pbuffer = buffer; -
84 -
85 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:218
218
86} -
87 -
88void -
89hb_buffer_free( HB_Buffer buffer ) -
90{ -
91 do { if ( (buffer->in_string) ) { _hb_free( buffer->in_string ); buffer->in_string = ((void *)0); } } while (0);
executed: }
Execution Count:132
executed: }
Execution Count:208
evaluated: (buffer->in_string)
TRUEFALSE
yes
Evaluation Count:132
yes
Evaluation Count:76
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:208
0-208
92 do { if ( (buffer->alt_string) ) { _hb_free( buffer->alt_string ); buffer->alt_string = ((void *)0); } } while (0);
executed: }
Execution Count:22
executed: }
Execution Count:208
evaluated: (buffer->alt_string)
TRUEFALSE
yes
Evaluation Count:22
yes
Evaluation Count:186
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:208
0-208
93 buffer->out_string = ((void *)0); -
94 do { if ( (buffer->positions) ) { _hb_free( buffer->positions ); buffer->positions = ((void *)0); } } while (0);
executed: }
Execution Count:131
executed: }
Execution Count:208
evaluated: (buffer->positions)
TRUEFALSE
yes
Evaluation Count:131
yes
Evaluation Count:77
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:208
0-208
95 do { if ( (buffer) ) { _hb_free( buffer ); buffer = ((void *)0); } } while (0);
executed: }
Execution Count:208
executed: }
Execution Count:208
partially evaluated: (buffer)
TRUEFALSE
yes
Evaluation Count:208
no
Evaluation Count:0
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:208
0-208
96}
executed: }
Execution Count:208
208
97 -
98void -
99hb_buffer_clear( HB_Buffer buffer ) -
100{ -
101 buffer->in_length = 0; -
102 buffer->out_length = 0; -
103 buffer->in_pos = 0; -
104 buffer->out_pos = 0; -
105 buffer->out_string = buffer->in_string; -
106 buffer->separate_out = 0; -
107 buffer->max_ligID = 0; -
108}
executed: }
Execution Count:248331
248331
109 -
110HB_Error -
111hb_buffer_add_glyph( HB_Buffer buffer, -
112 HB_UInt glyph_index, -
113 HB_UInt properties, -
114 HB_UInt cluster ) -
115{ -
116 HB_Error error; -
117 HB_GlyphItem glyph; -
118 -
119 error = hb_buffer_ensure( buffer, buffer->in_length + 1 ); -
120 if ( error )
partially evaluated: error
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3326586
0-3326586
121 return error;
never executed: return error;
0
122 -
123 glyph = &buffer->in_string[buffer->in_length]; -
124 glyph->gindex = glyph_index; -
125 glyph->properties = properties; -
126 glyph->cluster = cluster; -
127 glyph->component = 0; -
128 glyph->ligID = 0; -
129 glyph->gproperties = 0xFFFF; -
130 -
131 buffer->in_length++; -
132 -
133 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:3326586
3326586
134} -
135 -
136 -
137 -
138 void -
139_hb_buffer_clear_output( HB_Buffer buffer ) -
140{ -
141 buffer->out_length = 0; -
142 buffer->out_pos = 0; -
143 buffer->out_string = buffer->in_string; -
144 buffer->separate_out = 0; -
145}
executed: }
Execution Count:744297
744297
146 -
147 HB_Error -
148_hb_buffer_clear_positions( HB_Buffer buffer ) -
149{ -
150 if ( !buffer->positions )
evaluated: !buffer->positions
TRUEFALSE
yes
Evaluation Count:138
yes
Evaluation Count:247974
138-247974
151 { -
152 HB_Error error; -
153 -
154 if ( ( (buffer->positions) = _hb_alloc( (buffer->allocated)*sizeof(HB_PositionRec), &error ), error != 0 ) )
partially evaluated: ( (buffer->positions) = _hb_alloc( (buffer->allocated)*sizeof(HB_PositionRec), &error ), error != 0 )
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:138
0-138
155 return error;
never executed: return error;
0
156 }
executed: }
Execution Count:138
138
157 -
158 memset (buffer->positions, 0, sizeof (buffer->positions[0]) * buffer->in_length); -
159 -
160 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:248112
248112
161} -
162 -
163 void -
164_hb_buffer_swap( HB_Buffer buffer ) -
165{ -
166 HB_GlyphItem tmp_string; -
167 int tmp_length; -
168 int tmp_pos; -
169 -
170 if ( buffer->separate_out )
evaluated: buffer->separate_out
TRUEFALSE
yes
Evaluation Count:9876
yes
Evaluation Count:94
94-9876
171 { -
172 tmp_string = buffer->in_string; -
173 buffer->in_string = buffer->out_string; -
174 buffer->out_string = tmp_string; -
175 buffer->alt_string = buffer->out_string; -
176 }
executed: }
Execution Count:9876
9876
177 -
178 tmp_length = buffer->in_length; -
179 buffer->in_length = buffer->out_length; -
180 buffer->out_length = tmp_length; -
181 -
182 tmp_pos = buffer->in_pos; -
183 buffer->in_pos = buffer->out_pos; -
184 buffer->out_pos = tmp_pos; -
185}
executed: }
Execution Count:9970
9970
186 HB_Error -
187_hb_buffer_add_output_glyphs( HB_Buffer buffer, -
188 HB_UShort num_in, -
189 HB_UShort num_out, -
190 HB_UShort *glyph_data, -
191 HB_UShort component, -
192 HB_UShort ligID ) -
193{ -
194 HB_Error error; -
195 HB_UShort i; -
196 HB_UInt properties; -
197 HB_UInt cluster; -
198 -
199 error = hb_buffer_ensure( buffer, buffer->out_pos + num_out ); -
200 if ( error )
partially evaluated: error
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9979
0-9979
201 return error;
never executed: return error;
0
202 -
203 if ( !buffer->separate_out )
evaluated: !buffer->separate_out
TRUEFALSE
yes
Evaluation Count:9876
yes
Evaluation Count:103
103-9876
204 { -
205 error = hb_buffer_duplicate_out_buffer( buffer ); -
206 if ( error )
partially evaluated: error
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9876
0-9876
207 return error;
never executed: return error;
0
208 }
executed: }
Execution Count:9876
9876
209 -
210 properties = buffer->in_string[buffer->in_pos].properties; -
211 cluster = buffer->in_string[buffer->in_pos].cluster; -
212 if ( component == 0xFFFF )
partially evaluated: component == 0xFFFF
TRUEFALSE
yes
Evaluation Count:9979
no
Evaluation Count:0
0-9979
213 component = buffer->in_string[buffer->in_pos].component;
executed: component = buffer->in_string[buffer->in_pos].component;
Execution Count:9979
9979
214 if ( ligID == 0xFFFF )
partially evaluated: ligID == 0xFFFF
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9979
0-9979
215 ligID = buffer->in_string[buffer->in_pos].ligID;
never executed: ligID = buffer->in_string[buffer->in_pos].ligID;
0
216 -
217 for ( i = 0; i < num_out; i++ )
evaluated: i < num_out
TRUEFALSE
yes
Evaluation Count:9979
yes
Evaluation Count:9979
9979
218 { -
219 HB_GlyphItem item = &buffer->out_string[buffer->out_pos + i]; -
220 -
221 item->gindex = glyph_data[i]; -
222 item->properties = properties; -
223 item->cluster = cluster; -
224 item->component = component; -
225 item->ligID = ligID; -
226 item->gproperties = 0xFFFF; -
227 }
executed: }
Execution Count:9979
9979
228 -
229 buffer->in_pos += num_in; -
230 buffer->out_pos += num_out; -
231 -
232 buffer->out_length = buffer->out_pos; -
233 -
234 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:9979
9979
235} -
236 -
237 HB_Error -
238_hb_buffer_add_output_glyph( HB_Buffer buffer, -
239 HB_UInt glyph_index, -
240 HB_UShort component, -
241 HB_UShort ligID ) -
242{ -
243 HB_UShort glyph_data = glyph_index; -
244 -
245 return _hb_buffer_add_output_glyphs ( buffer, 1, 1, 0
246 &glyph_data, component, ligID );
never executed: return _hb_buffer_add_output_glyphs ( buffer, 1, 1, &glyph_data, component, ligID );
0
247} -
248 -
249 HB_Error -
250_hb_buffer_copy_output_glyph ( HB_Buffer buffer ) -
251{ -
252 HB_Error error; -
253 -
254 error = hb_buffer_ensure( buffer, buffer->out_pos + 1 ); -
255 if ( error )
partially evaluated: error
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9548054
0-9548054
256 return error;
never executed: return error;
0
257 -
258 if ( buffer->separate_out )
evaluated: buffer->separate_out
TRUEFALSE
yes
Evaluation Count:89007
yes
Evaluation Count:9459047
89007-9459047
259 { -
260 buffer->out_string[buffer->out_pos] = buffer->in_string[buffer->in_pos]; -
261 }
executed: }
Execution Count:89007
89007
262 -
263 buffer->in_pos++; -
264 buffer->out_pos++; -
265 buffer->out_length = buffer->out_pos; -
266 -
267 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:9548054
9548054
268} -
269 -
270 HB_Error -
271_hb_buffer_replace_output_glyph( HB_Buffer buffer, -
272 HB_UInt glyph_index, -
273 HB_Bool inplace ) -
274{ -
275 -
276 HB_Error error; -
277 -
278 if ( inplace )
partially evaluated: inplace
TRUEFALSE
yes
Evaluation Count:130
no
Evaluation Count:0
0-130
279 { -
280 error = _hb_buffer_copy_output_glyph ( buffer ); -
281 if ( error )
partially evaluated: error
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:130
0-130
282 return error;
never executed: return error;
0
283 -
284 buffer->out_string[buffer->out_pos-1].gindex = glyph_index; -
285 }
executed: }
Execution Count:130
130
286 else -
287 { -
288 return _hb_buffer_add_output_glyph( buffer, glyph_index, 0xFFFF, 0xFFFF );
never executed: return _hb_buffer_add_output_glyph( buffer, glyph_index, 0xFFFF, 0xFFFF );
0
289 } -
290 -
291 return HB_Err_Ok;
executed: return HB_Err_Ok;
Execution Count:130
130
292} -
293 -
294 HB_UShort -
295_hb_buffer_allocate_ligid( HB_Buffer buffer ) -
296{ -
297 buffer->max_ligID++; -
298 if ((buffer->max_ligID == 0))
partially evaluated: (buffer->max_ligID == 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:9979
0-9979
299 buffer->max_ligID++;
never executed: buffer->max_ligID++;
0
300 -
301 return buffer->max_ligID;
executed: return buffer->max_ligID;
Execution Count:9979
9979
302} -
303 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial