| line |
true |
false |
branch |
|
26
|
0 |
40 |
if( visited_p >= visited_capacity ){ |
|
28
|
0 |
0 |
Renew(visited, visited_capacity, SV*); |
|
35
|
182 |
26 |
for(unsigned char * str_end=str+len; str!=str_end; ++str){ |
|
36
|
0 |
182 |
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
|
182 |
26 |
for(unsigned char * str_end=str+len; str!=str_end; ++str){ |
|
77
|
0 |
182 |
if( *str < 0x20 ){ |
|
110
|
3 |
0 |
if( str!=str_begin && *(str-1)=='<' ) |
|
|
1 |
2 |
if( str!=str_begin && *(str-1)=='<' ) |
|
136
|
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' ) |
|
142
|
53 |
8 |
while( str!=str_end && isSPACE(*str) ) |
|
|
0 |
53 |
while( str!=str_end && isSPACE(*str) ) |
|
148
|
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!='}'; |
|
152
|
2 |
0 |
return !isSPACE(ch) && ch!=':'; |
|
|
2 |
0 |
return !isSPACE(ch) && ch!=':'; |
|
156
|
0 |
3 |
if( str==str_end ) |
|
161
|
3 |
0 |
if( *str=='+' || *str=='-' ){ |
|
|
0 |
3 |
if( *str=='+' || *str=='-' ){ |
|
166
|
3 |
0 |
if( str!=str_end && isDIGIT(*str) ) |
|
|
1 |
2 |
if( str!=str_end && isDIGIT(*str) ) |
|
168
|
4 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
|
1 |
3 |
while( str!=str_end && isDIGIT(*str) ){ |
|
172
|
3 |
0 |
if( str!=str_end && *str=='.' ){ |
|
|
0 |
3 |
if( str!=str_end && *str=='.' ){ |
|
176
|
3 |
0 |
if( str!=str_end && isDIGIT(*str) ) |
|
|
0 |
3 |
if( str!=str_end && isDIGIT(*str) ) |
|
178
|
3 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
|
0 |
3 |
while( str!=str_end && isDIGIT(*str) ){ |
|
182
|
2 |
1 |
if( !has_digit ) |
|
185
|
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') ){ |
|
188
|
0 |
0 |
if( str!=str_end && (*str=='+' || *str=='-') ){ |
|
|
0 |
0 |
if( str!=str_end && (*str=='+' || *str=='-') ){ |
|
|
0 |
0 |
if( str!=str_end && (*str=='+' || *str=='-') ){ |
|
192
|
0 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
|
0 |
0 |
while( str!=str_end && isDIGIT(*str) ){ |
|
202
|
2 |
1 |
if( len<=0 ){ |
|
207
|
1 |
0 |
if( !*out ){ |
|
211
|
0 |
0 |
else if( *out_capacity_end - *out < len + 1 ){ |
|
220
|
1 |
0 |
if( *str=='+' || *str=='-' ){ |
|
|
0 |
1 |
if( *str=='+' || *str=='-' ){ |
|
225
|
1 |
1 |
while( len-- ) |
|
231
|
0 |
4 |
if( str==str_end ) |
|
233
|
1 |
3 |
if( *str=='"' || *str=='\'' ){ |
|
|
0 |
1 |
if( *str=='"' || *str=='\'' ){ |
|
238
|
0 |
28 |
if( str==str_end ) |
|
240
|
3 |
25 |
if( *str==delimiter ) |
|
242
|
0 |
25 |
if( *str=='\\' ){ |
|
248
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
250
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
252
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
254
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
257
|
0 |
0 |
if( d <= 0x7f ) |
|
259
|
0 |
0 |
else if( d <= 0x7ff ) |
|
261
|
0 |
0 |
else if( d <= 0xffff ) |
|
272
|
0 |
0 |
if( *(str-1)==delimiter ) |
|
286
|
1 |
1 |
while( str!=str_end && is_key(*str) ){ |
|
|
1 |
0 |
while( str!=str_end && is_key(*str) ){ |
|
295
|
0 |
7 |
if( str==str_end ) |
|
297
|
0 |
7 |
if( *str=='"' || *str=='\'' ){ |
|
|
0 |
0 |
if( *str=='"' || *str=='\'' ){ |
|
302
|
1 |
88 |
if( str==str_end ) |
|
304
|
6 |
82 |
if( *str==delimiter ) |
|
306
|
4 |
78 |
if( *str=='\\' ){ |
|
312
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
314
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
316
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
318
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
321
|
0 |
0 |
if( d <= 0x7f ) |
|
323
|
0 |
0 |
else if( d <= 0x7ff ) |
|
325
|
0 |
0 |
else if( d <= 0xffff ) |
|
336
|
1 |
1 |
if( *(str-1)==delimiter ) |
|
354
|
0 |
4 |
if( len==-1 ){ |
|
359
|
4 |
0 |
if( !*out ){ |
|
363
|
0 |
0 |
else if( *out_capacity_end - *out < len + 1 ){ |
|
372
|
1 |
3 |
if( *str=='"' || *str=='\'' ){ |
|
|
0 |
1 |
if( *str=='"' || *str=='\'' ){ |
|
376
|
3 |
25 |
if( *str==delimiter ) |
|
378
|
0 |
25 |
if( *str=='\\' ){ |
|
384
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
386
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
388
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
390
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
393
|
0 |
0 |
if( d <= 0x7f ) |
|
395
|
0 |
0 |
else if( d <= 0x7ff ){ |
|
399
|
0 |
0 |
else if( d <= 0xffff ){ |
|
435
|
0 |
0 |
if( *(str-1)!=delimiter ) |
|
445
|
1 |
1 |
while( str!=str_end && is_key(*str) ) |
|
|
1 |
0 |
while( str!=str_end && is_key(*str) ) |
|
453
|
1 |
6 |
if( len==-1 ){ |
|
458
|
6 |
0 |
if( !*out ){ |
|
462
|
0 |
0 |
else if( *out_capacity_end - *out < len + 1 ){ |
|
474
|
6 |
75 |
if( *str==delimiter ) |
|
476
|
4 |
71 |
if( *str=='\\' ){ |
|
482
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
484
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
486
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
488
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
|
0 |
0 |
if( str!=str_end && isXDIGIT(*str) ) |
|
491
|
0 |
0 |
if( d <= 0x7f ) |
|
493
|
0 |
0 |
else if( d <= 0x7ff ){ |
|
497
|
0 |
0 |
else if( d <= 0xffff ){ |
|
533
|
1 |
1 |
if( *(str-1)!=delimiter ) |
|
546
|
0 |
23 |
if( str==str_end ) |
|
556
|
0 |
10 |
if( str==str_end ) |
|
558
|
0 |
10 |
if( *str == ']' ) |
|
563
|
3 |
7 |
if( elem==NULL ) |
|
568
|
0 |
7 |
if( str==str_end ) |
|
570
|
4 |
3 |
if( *str == ']' ) |
|
572
|
3 |
0 |
if( *str==',' ) |
|
584
|
0 |
4 |
if( str==str_end ){ |
|
585
|
0 |
0 |
if( key_buffer ) |
|
589
|
0 |
4 |
if( *str=='}' ){ |
|
590
|
0 |
0 |
if( key_buffer ) |
|
595
|
0 |
4 |
if( !key_end ){ |
|
596
|
0 |
0 |
if( key_buffer ) |
|
603
|
3 |
1 |
if( *str==':' ) |
|
605
|
1 |
3 |
if( elem==NULL ){ |
|
612
|
0 |
3 |
if( str==str_end ){ |
|
616
|
3 |
0 |
if( *str=='}' ){ |
|
620
|
0 |
0 |
if( *str==',' ) |
|
632
|
1 |
6 |
if( !value_end ) |
|
643
|
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])) ){ |
|
644
|
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') ){ |
|
648
|
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') ){ |
|
653
|
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])) ){ |
|
654
|
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') ){ |
|
662
|
1 |
2 |
if( value_end ){ |
|
717
|
9 |
0 |
str = (unsigned char*) SvPV(json, len); |
|
720
|
3 |
6 |
if( str_end != str_adv ){ |
|
721
|
1 |
2 |
if( warn2die ) |
|
729
|
1 |
5 |
else if( out==NULL ){ |
|
730
|
0 |
1 |
if( warn2die ) |
|
746
|
1 |
0 |
str = (unsigned char*) SvPV(json, len); |
|
749
|
0 |
1 |
if( str_end != str_adv ){ |
|
753
|
0 |
1 |
else if( out==NULL ) |
|
760
|
0 |
1 |
Newx(visited, visited_capacity, SV*); |