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*); |