| line |
true |
false |
branch |
|
85
|
23 |
0 |
return my_snprintf( numstr, strlen, UV_TO_STR_TMPL, num ); |
|
|
0 |
23 |
return my_snprintf( numstr, strlen, UV_TO_STR_TMPL, num ); |
|
89
|
2 |
0 |
return my_snprintf( numstr, strlen, IV_TO_STR_TMPL, num ); |
|
|
0 |
2 |
return my_snprintf( numstr, strlen, IV_TO_STR_TMPL, num ); |
|
93
|
195 |
11 |
if (!(decstate->flags & CBF_FLAG_PERSIST_STATE)) { |
|
179
|
0 |
0 |
my_snprintf( bytebuf, 5, "0x%02x", byte ); |
|
227
|
0 |
33 |
my_snprintf( tmpl, sizeof(tmpl), "Ignoring unrecognized CBOR tag #%s (major type %%u, %%s)!", UV_TO_STR_TMPL ); |
|
236
|
93 |
3 |
if (!(decstate->flags & CBF_FLAG_NAIVE_UTF8) && !is_utf8_string( (U8 *)buffer, len)) { |
|
|
2 |
91 |
if (!(decstate->flags & CBF_FLAG_NAIVE_UTF8) && !is_utf8_string( (U8 *)buffer, len)) { |
|
252
|
6 |
258 |
_RETURN_IF_INCOMPLETE( decstate, 2, 0 ); |
|
263
|
10 |
46 |
_RETURN_IF_INCOMPLETE( decstate, 3, 0); |
|
274
|
34 |
128 |
_RETURN_IF_INCOMPLETE( decstate, 5, 0); |
|
285
|
40 |
19 |
_RETURN_IF_INCOMPLETE( decstate, 9, 0); |
|
326
|
39 |
132 |
if (CONTROL_BYTE_LENGTH_TYPE(*decstate->curbyte) == CBOR_LENGTH_INDEFINITE) { |
|
330
|
4 |
79 |
_RETURN_IF_INCOMPLETE( decstate, 1, NULL ); |
|
332
|
12 |
67 |
if ( decstate->curbyte[0] == '\xff') { |
|
339
|
23 |
44 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
346
|
2 |
127 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
348
|
108 |
19 |
if (array_length) { |
|
352
|
533 |
54 |
for (i=0; i
|
|
354
|
5 |
479 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
356
|
0 |
479 |
if (!av_store(array, i, cur)) { |
|
369
|
1 |
1908 |
if (CONTROL_BYTE_LENGTH_TYPE(*decstate->curbyte) == CBOR_LENGTH_INDEFINITE) { |
|
379
|
1 |
45 |
if (CONTROL_BYTE_LENGTH_TYPE(*decstate->curbyte) == CBOR_LENGTH_INDEFINITE) { |
|
384
|
16 |
26 |
_RETURN_IF_SET_INCOMPLETE(decstate, 0); |
|
387
|
1 |
25 |
if (positive >= 0x8000000000000000U) { |
|
412
|
11 |
3715 |
if (CONTROL_BYTE_LENGTH_TYPE(*decstate->curbyte) == CBOR_LENGTH_INDEFINITE) { |
|
420
|
2 |
21 |
_RETURN_IF_INCOMPLETE( decstate, 1, false ); |
|
422
|
7 |
14 |
if (decstate->curbyte[0] == '\xff') { |
|
431
|
2 |
12 |
_RETURN_IF_SET_INCOMPLETE( decstate, false ); |
|
444
|
41 |
3668 |
_RETURN_IF_SET_INCOMPLETE(decstate, false); |
|
446
|
31 |
3637 |
_RETURN_IF_INCOMPLETE( decstate, string_u->numbuf.num.uv, false ); |
|
457
|
2 |
2559 |
_RETURN_IF_INCOMPLETE( decstate, 1, ); |
|
474
|
1 |
22 |
_RETURN_IF_SET_INCOMPLETE(decstate, ); |
|
484
|
1 |
2 |
_RETURN_IF_SET_INCOMPLETE(decstate, ); |
|
494
|
3 |
2522 |
_RETURN_IF_SET_INCOMPLETE(decstate, ); |
|
496
|
2519 |
3 |
if (!my_key_has_sv) { |
|
497
|
0 |
2519 |
if (my_key.numbuf.num.uv > 0x7fffffffU) { |
|
503
|
2489 |
30 |
if (SHOULD_VALIDATE_UTF8(decstate, major_type)) { |
|
|
0 |
2489 |
if (SHOULD_VALIDATE_UTF8(decstate, major_type)) { |
|
506
|
0 |
29 |
keylen = decstate->string_decode_mode == CBF_STRING_DECODE_NEVER ? my_key.numbuf.num.uv : -my_key.numbuf.num.uv; |
|
522
|
3 |
2542 |
if (decstate->incomplete_by) { |
|
523
|
1 |
2 |
if (my_key_has_sv) { |
|
527
|
2 |
2540 |
else if (my_key_has_sv) { |
|
541
|
8 |
59 |
if (CONTROL_BYTE_LENGTH_TYPE(*decstate->curbyte) == CBOR_LENGTH_INDEFINITE) { |
|
545
|
2 |
11 |
_RETURN_IF_INCOMPLETE( decstate, 1, NULL ); |
|
547
|
4 |
7 |
if (decstate->curbyte[0] == '\xff') { |
|
555
|
2 |
5 |
if ( decstate->incomplete_by ) { |
|
562
|
5 |
51 |
if ( decstate->incomplete_by ) { |
|
566
|
39 |
12 |
if (keycount) { |
|
567
|
2554 |
22 |
while (keycount > 0) { |
|
571
|
8 |
2537 |
if ( decstate->incomplete_by ) { |
|
591
|
0 |
7 |
if (exp == 0) val = ldexp(mant, -24); |
|
592
|
1 |
6 |
else if (exp != 31) val = ldexp(mant + 1024, exp - 25); |
|
593
|
4 |
2 |
else val = mant == 0 ? INFINITY : NAN; |
|
594
|
2 |
5 |
return half & 0x8000 ? -val : val; |
|
622
|
4 |
1191 |
if (_decode_str( aTHX_ decstate, &string )) { |
|
626
|
73 |
1118 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
635
|
11 |
3938 |
_RETURN_IF_INCOMPLETE( decstate, 1, NULL ); |
|
644
|
15 |
1867 |
if ( decstate->incomplete_by ) { |
|
652
|
15 |
23 |
if ( decstate->incomplete_by ) { |
|
661
|
73 |
1122 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
663
|
1058 |
64 |
if (SHOULD_VALIDATE_UTF8(decstate, CONTROL_BYTE_MAJOR_TYPE(control_byte))) { |
|
|
2 |
1056 |
if (SHOULD_VALIDATE_UTF8(decstate, CONTROL_BYTE_MAJOR_TYPE(control_byte))) { |
|
664
|
66 |
0 |
_validate_utf8_string_if_needed( aTHX_ decstate, SvPV_nolen(ret), SvCUR(ret)); |
|
669
|
63 |
2 |
if (decstate->string_decode_mode != CBF_STRING_DECODE_NEVER) SvUTF8_on(ret); |
|
675
|
34 |
85 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
680
|
17 |
38 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
685
|
1 |
197 |
if (CONTROL_BYTE_LENGTH_TYPE(control_byte) == CBOR_LENGTH_INDEFINITE) { |
|
690
|
15 |
179 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
694
|
24 |
155 |
if (tagnum == CBOR_TAG_SHAREDREF && decstate->reflist) { |
|
|
12 |
12 |
if (tagnum == CBOR_TAG_SHAREDREF && decstate->reflist) { |
|
695
|
0 |
12 |
if (value_major_type != CBOR_TYPE_UINT) { |
|
697
|
0 |
0 |
my_snprintf( tmpl, sizeof(tmpl), "Shared ref type must be uint, not %%u (%%s)!" ); |
|
702
|
0 |
12 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
704
|
0 |
12 |
if (refnum >= decstate->reflistlen) { |
|
713
|
5 |
162 |
_RETURN_IF_SET_INCOMPLETE(decstate, NULL); |
|
715
|
17 |
145 |
if (tagnum == CBOR_TAG_INDIRECTION) { |
|
718
|
24 |
121 |
else if (tagnum == CBOR_TAG_SHAREABLE && decstate->reflist) { |
|
|
12 |
12 |
else if (tagnum == CBOR_TAG_SHAREABLE && decstate->reflist) { |
|
720
|
0 |
12 |
Renew( decstate->reflist, decstate->reflistlen, void * ); |
|
725
|
102 |
31 |
else if (decstate->tag_handler) { |
|
730
|
101 |
1 |
if (handler_cr && *handler_cr && SvOK(*handler_cr)) { |
|
|
101 |
0 |
if (handler_cr && *handler_cr && SvOK(*handler_cr)) { |
|
|
1 |
100 |
if (handler_cr && *handler_cr && SvOK(*handler_cr)) { |
|
|
1 |
0 |
if (handler_cr && *handler_cr && SvOK(*handler_cr)) { |
|
|
0 |
1 |
if (handler_cr && *handler_cr && SvOK(*handler_cr)) { |
|
762
|
2 |
7 |
_RETURN_IF_INCOMPLETE( decstate, 3, NULL ); |
|
770
|
4 |
24 |
_RETURN_IF_INCOMPLETE( decstate, 5, NULL ); |
|
786
|
8 |
63 |
_RETURN_IF_INCOMPLETE( decstate, 9, NULL ); |
|
828
|
599 |
30 |
if (decode_state->curbyte == NULL) { |
|
854
|
472 |
107 |
if (cbor) { |
|
859
|
0 |
579 |
if (NULL != tag_handler) { |
|
870
|
0 |
579 |
if (flags & CBF_FLAG_PRESERVE_REFERENCES) { |
|
878
|
4 |
0 |
if (NULL == decode_state->reflist) { |
|
884
|
4 |
579 |
if (NULL != decode_state->reflist) { |
|
892
|
2 |
2 |
if (decode_state->reflistlen) { |
|
901
|
102 |
477 |
if (NULL != decode_state->tag_handler) { |
|
912
|
146 |
384 |
if (decode_state->incomplete_by) { |
|
916
|
1 |
383 |
if (decode_state->curbyte != decode_state->end) { |