| line |
true |
false |
branch |
|
26
|
0 |
50 |
if( visited_p >= visited_capacity ){ |
|
28
|
0 |
0 |
Renew(visited, visited_capacity, SV*); |
|
35
|
267 |
34 |
for(unsigned char * str_end=str+len; str!=str_end; ++str){ |
|
36
|
0 |
267 |
if( *str < 0x20 ){ |
|
37
|
0 |
0 |
switch( *str ){ |
|
50
|
3 |
0 |
if( str!=str_begin && *(str-1)=='<' ) |
|
|
1 |
2 |
if( str!=str_begin && *(str-1)=='<' ) |
|
60
|
0 |
0 |
if( ch>9 ) |
|
66
|
0 |
0 |
if( ch<='9' ) |
|
68
|
0 |
0 |
if( ch<='Z' ) |
|
76
|
267 |
34 |
for(unsigned char * str_end=str+len; str!=str_end; ++str){ |
|
77
|
0 |
267 |
if( *str < 0x20 ){ |
|
110
|
3 |
0 |
if( str!=str_begin && *(str-1)=='<' ) |
|
|
1 |
2 |
if( str!=str_begin && *(str-1)=='<' ) |
|
156
|
9 |
1 |
if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' ) |
|
|
0 |
9 |
if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' ) |
|
|
0 |
0 |
if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' ) |
|
|
0 |
0 |
if( str_end - str >= 3 && str[0]==(unsigned char)'\xEF' && str[1]==(unsigned char)'\xBB' && str[2]==(unsigned char)'\xBF' ) |
|
162
|
53 |
8 |
while( str!=str_end && isSPACE(*str) ) |
|
|
0 |
53 |
while( str!=str_end && isSPACE(*str) ) |
|
168
|
2 |
0 |
return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}'; |
|
|
2 |
0 |
return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}'; |
|
|
2 |
0 |
return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}'; |
|
|
0 |
2 |
return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}'; |
|
|
0 |
0 |
return !isSPACE(ch) && ch!=',' && ch!=':' && ch!=']' && ch!='}'; |
|
172
|
2 |
0 |
return !isSPACE(ch) && ch!=':'; |
|
|
2 |
0 |
return !isSPACE(ch) && ch!=':'; |
|
176
|
0 |
3 |
if( str==str_end ) |
|
181
|
3 |
0 |
if( *str=='+' || *str=='-' ){ |
|
|
0 |
3 |
if( *str=='+' || *str=='-' ){ |
|
186
|
3 |
0 |
if( str!=str_end && isDIGIT(*str) ) |
|
|
1 |
2 |
if( str!=str_end && isDIGIT(*str) ) |
|
188
|
4 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
|
1 |
3 |
while( str!=str_end && isDIGIT(*str) ){ |
|
192
|
3 |
0 |
if( str!=str_end && *str=='.' ){ |
|
|
0 |
3 |
if( str!=str_end && *str=='.' ){ |
|
196
|
3 |
0 |
if( str!=str_end && isDIGIT(*str) ) |
|
|
0 |
3 |
if( str!=str_end && isDIGIT(*str) ) |
|
198
|
3 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
|
0 |
3 |
while( str!=str_end && isDIGIT(*str) ){ |
|
202
|
2 |
1 |
if( !has_digit ) |
|
205
|
1 |
0 |
if( str!=str_end && (*str=='e' || *str=='E') ){ |
|
|
1 |
0 |
if( str!=str_end && (*str=='e' || *str=='E') ){ |
|
|
0 |
1 |
if( str!=str_end && (*str=='e' || *str=='E') ){ |
|
208
|
0 |
0 |
if( str!=str_end && (*str=='+' || *str=='-') ){ |
|
|
0 |
0 |
if( str!=str_end && (*str=='+' || *str=='-') ){ |
|
|
0 |
0 |
if( str!=str_end && (*str=='+' || *str=='-') ){ |
|
212
|
0 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
|
0 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
222
|
2 |
1 |
if( len<=0 ){ |
|
227
|
1 |
0 |
if( !*out ){ |
|
231
|
0 |
0 |
else if( *out_capacity_end - *out < len + 1 ){ |
|
240
|
1 |
0 |
if( *str=='+' || *str=='-' ){ |
|
|
0 |
1 |
if( *str=='+' || *str=='-' ){ |
|
245
|
1 |
1 |
while( len-- ) |
|
251
|
0 |
4 |
if( str==str_end ) |
|
253
|
1 |
3 |
if( *str=='"' || *str=='\'' ){ |
|
|
0 |
1 |
if( *str=='"' || *str=='\'' ){ |
|
258
|
0 |
28 |
if( str==str_end ) |
|
260
|
3 |
25 |
if( *str==delimiter ) |
|
262
|
0 |
25 |
if( *str=='\\' ){ |
|
268
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
270
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
272
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
274
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
277
|
0 |
0 |
if( d <= 0x7f ) |
|
279
|
0 |
0 |
else if( d <= 0x7ff ) |
|
281
|
0 |
0 |
else if( d <= 0xffff ) |
|
292
|
0 |
0 |
if( *(str-1)==delimiter ) |
|
306
|
1 |
1 |
while( str!=str_end && is_key(*str) ){ |
|
|
1 |
0 |
while( str!=str_end && is_key(*str) ){ |
|
315
|
0 |
7 |
if( str==str_end ) |
|
317
|
0 |
7 |
if( *str=='"' || *str=='\'' ){ |
|
|
0 |
0 |
if( *str=='"' || *str=='\'' ){ |
|
322
|
1 |
88 |
if( str==str_end ) |
|
324
|
6 |
82 |
if( *str==delimiter ) |
|
326
|
4 |
78 |
if( *str=='\\' ){ |
|
332
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
334
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
336
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
338
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
341
|
0 |
0 |
if( d <= 0x7f ) |
|
343
|
0 |
0 |
else if( d <= 0x7ff ) |
|
345
|
0 |
0 |
else if( d <= 0xffff ) |
|
356
|
1 |
1 |
if( *(str-1)==delimiter ) |
|
374
|
0 |
4 |
if( len==-1 ){ |
|
379
|
4 |
0 |
if( !*out ){ |
|
383
|
0 |
0 |
else if( *out_capacity_end - *out < len + 1 ){ |
|
392
|
1 |
3 |
if( *str=='"' || *str=='\'' ){ |
|
|
0 |
1 |
if( *str=='"' || *str=='\'' ){ |
|
396
|
3 |
25 |
if( *str==delimiter ) |
|
398
|
0 |
25 |
if( *str=='\\' ){ |
|
404
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
406
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
408
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
410
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
413
|
0 |
0 |
if( d <= 0x7f ) |
|
415
|
0 |
0 |
else if( d <= 0x7ff ){ |
|
419
|
0 |
0 |
else if( d <= 0xffff ){ |
|
455
|
0 |
0 |
if( *(str-1)!=delimiter ) |
|
465
|
1 |
1 |
while( str!=str_end && is_key(*str) ) |
|
|
1 |
0 |
while( str!=str_end && is_key(*str) ) |
|
473
|
1 |
6 |
if( len==-1 ){ |
|
478
|
6 |
0 |
if( !*out ){ |
|
482
|
0 |
0 |
else if( *out_capacity_end - *out < len + 1 ){ |
|
494
|
6 |
75 |
if( *str==delimiter ) |
|
496
|
4 |
71 |
if( *str=='\\' ){ |
|
502
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
504
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
506
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
508
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
511
|
0 |
0 |
if( d <= 0x7f ) |
|
513
|
0 |
0 |
else if( d <= 0x7ff ){ |
|
517
|
0 |
0 |
else if( d <= 0xffff ){ |
|
553
|
1 |
1 |
if( *(str-1)!=delimiter ) |
|
566
|
0 |
23 |
if( str==str_end ) |
|
576
|
0 |
10 |
if( str==str_end ) |
|
578
|
0 |
10 |
if( *str == ']' ) |
|
583
|
3 |
7 |
if( elem==NULL ) |
|
588
|
0 |
7 |
if( str==str_end ) |
|
590
|
4 |
3 |
if( *str == ']' ) |
|
592
|
3 |
0 |
if( *str==',' ) |
|
604
|
0 |
4 |
if( str==str_end ){ |
|
605
|
0 |
0 |
if( key_buffer ) |
|
609
|
0 |
4 |
if( *str=='}' ){ |
|
610
|
0 |
0 |
if( key_buffer ) |
|
615
|
0 |
4 |
if( !key_end ){ |
|
616
|
0 |
0 |
if( key_buffer ) |
|
623
|
3 |
1 |
if( *str==':' ) |
|
625
|
1 |
3 |
if( elem==NULL ){ |
|
632
|
0 |
3 |
if( str==str_end ){ |
|
636
|
3 |
0 |
if( *str=='}' ){ |
|
640
|
0 |
0 |
if( *str==',' ) |
|
652
|
1 |
6 |
if( !value_end ) |
|
663
|
5 |
0 |
if( str_end-str==4 || (str_end-str>4 && !is_identity(str[4])) ){ |
|
|
2 |
3 |
if( str_end-str==4 || (str_end-str>4 && !is_identity(str[4])) ){ |
|
|
2 |
0 |
if( str_end-str==4 || (str_end-str>4 && !is_identity(str[4])) ){ |
|
664
|
2 |
0 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
|
0 |
2 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='T' || str[0]=='t') && (str[1]=='R' || str[1]=='r') && (str[2]=='U' || str[2]=='u') && (str[3]=='E' || str[3]=='e') ){ |
|
668
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
|
2 |
0 |
if( (str[0]=='N' || str[0]=='n') && (str[1]=='U' || str[1]=='u') && (str[2]=='L' || str[2]=='l') && (str[3]=='L' || str[3]=='l') ){ |
|
673
|
3 |
0 |
if( str_end-str==5 || (str_end-str>5 && !is_identity(str[5])) ){ |
|
|
0 |
3 |
if( str_end-str==5 || (str_end-str>5 && !is_identity(str[5])) ){ |
|
|
0 |
0 |
if( str_end-str==5 || (str_end-str>5 && !is_identity(str[5])) ){ |
|
674
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
|
0 |
0 |
if( (str[0]=='F' || str[0]=='f') && (str[1]=='A' || str[1]=='a') && (str[2]=='L' || str[2]=='l') && (str[3]=='S' || str[3]=='s') && (str[4]=='E' || str[4]=='e') ){ |
|
682
|
1 |
2 |
if( value_end ){ |
|
714
|
0 |
15 |
if( cur - SvPVX(out_sv) != need_size ) |
|
729
|
0 |
4 |
if( cur - SvPVX(out_sv) != need_size ) |
|
744
|
0 |
1 |
if( cur - SvPVX(out_sv) != need_size ) |
|
759
|
0 |
0 |
if( cur - SvPVX(out_sv) + 1 != need_size ) |
|
771
|
9 |
0 |
str = (unsigned char*) SvPV(json, len); |
|
774
|
3 |
6 |
if( str_end != str_adv ){ |
|
775
|
1 |
2 |
if( warn2die ) |
|
783
|
1 |
5 |
else if( out==NULL ){ |
|
784
|
0 |
1 |
if( warn2die ) |
|
800
|
1 |
0 |
str = (unsigned char*) SvPV(json, len); |
|
803
|
0 |
1 |
if( str_end != str_adv ){ |
|
807
|
0 |
1 |
else if( out==NULL ) |
|
814
|
0 |
1 |
Newx(visited, visited_capacity, SV*); |