| line |
true |
false |
branch |
|
434
|
58 |
0 |
if ( !cxt->mojo_boolean_stash ) |
|
436
|
58 |
0 |
if ( !cxt->jsonold_boolean_stash ) |
|
461
|
0 |
116 |
if (!SvOBJECT(sv) || !SvSTASH(sv)) { |
|
|
0 |
0 |
if (!SvOBJECT(sv) || !SvSTASH(sv)) { |
|
477
|
200 |
0 |
if (SvLEN (sv) > SvCUR (sv) + 1) |
|
495
|
2791 |
0 |
if (LIKELY(len >= 2 |
|
|
1308 |
1483 |
if (LIKELY(len >= 2 |
|
|
1308 |
1483 |
if (LIKELY(len >= 2 |
|
|
1306 |
2 |
if (LIKELY(len >= 2 |
|
507
|
4 |
1481 |
UV c = utf8n_to_uvuni (s, len, clen, |
|
573
|
0 |
1335 |
if (UNLIKELY(ch < 0x000080)) |
|
575
|
736 |
599 |
else if (LIKELY(ch < 0x000800)) |
|
578
|
267 |
332 |
else if (ch < 0x010000) |
|
582
|
332 |
0 |
else if (ch < 0x110000) |
|
597
|
50 |
303 |
: offset; |
|
723
|
17 |
62 |
if (*s == '-') |
|
741
|
17 |
62 |
return neg ? -accum : accum; |
|
748
|
26 |
39 |
return (stash == gv_stashpvs ("Math::BigInt", 0) || stash == gv_stashpvs ("Math::BigFloat", 0)) ? 1 : 0; |
|
|
25 |
1 |
return (stash == gv_stashpvs ("Math::BigInt", 0) || stash == gv_stashpvs ("Math::BigFloat", 0)) ? 1 : 0; |
|
761
|
73 |
56 |
return (stash == bstash || stash == mstash || stash == oldstash) ? 1 : 0; |
|
|
73 |
0 |
return (stash == bstash || stash == mstash || stash == oldstash) ? 1 : 0; |
|
|
0 |
73 |
return (stash == bstash || stash == mstash || stash == oldstash) ? 1 : 0; |
|
770
|
27 |
1819 |
if (svt < SVt_PVAV) |
|
773
|
24 |
3 |
char *pv = svt ? SvPV_nomg (sv, len) : 0; |
|
|
9 |
15 |
char *pv = svt ? SvPV_nomg (sv, len) : 0; |
|
775
|
9 |
18 |
if (len == 1) { |
|
776
|
5 |
4 |
if (*pv == '1') |
|
778
|
3 |
1 |
else if (*pv == '0') |
|
791
|
7 |
1833 |
if (!SvROK (scalar)) |
|
796
|
1819 |
14 |
if (!SvOBJECT (scalar) && ref_bool_type (aTHX_ scalar) >= 0) |
|
|
0 |
1819 |
if (!SvOBJECT (scalar) && ref_bool_type (aTHX_ scalar) >= 0) |
|
799
|
14 |
1819 |
if (SvOBJECT (scalar) && is_bool_obj (aTHX_ scalar)) |
|
|
2 |
12 |
if (SvOBJECT (scalar) && is_bool_obj (aTHX_ scalar)) |
|
827
|
3174 |
57494 |
if (UNLIKELY(enc->cur + len >= enc->end)) |
|
830
|
3174 |
0 |
SvGROW (enc->sv, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1); |
|
|
1860 |
1314 |
SvGROW (enc->sv, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1); |
|
860
|
48006 |
2349 |
while (str < end) |
|
867
|
46116 |
1890 |
if (LIKELY(ch >= 0x20 && ch < 0x80)) /* most common case */ |
|
|
39756 |
6360 |
if (LIKELY(ch >= 0x20 && ch < 0x80)) /* most common case */ |
|
870
|
225 |
39531 |
if (UNLIKELY(ch == '"')) /* but with slow exceptions */ |
|
877
|
414 |
39117 |
else if (UNLIKELY(ch == '\\')) |
|
884
|
39 |
39078 |
else if (UNLIKELY(ch == '/' && (enc->json.flags & F_ESCAPE_SLASH))) |
|
|
1 |
38 |
else if (UNLIKELY(ch == '/' && (enc->json.flags & F_ESCAPE_SLASH))) |
|
919
|
3637 |
4053 |
if (is_utf8 && !(enc->json.flags & F_BINARY)) |
|
|
1620 |
2017 |
if (is_utf8 && !(enc->json.flags & F_BINARY)) |
|
923
|
0 |
1620 |
if (clen == (STRLEN)-1) |
|
932
|
6360 |
1330 |
if (uch < 0x80/*0x20*/ || uch >= enc->limit) |
|
|
5195 |
1165 |
if (uch < 0x80/*0x20*/ || uch >= enc->limit) |
|
934
|
5015 |
1510 |
if (enc->json.flags & F_BINARY) |
|
944
|
320 |
1190 |
else if (uch >= 0x10000UL) |
|
946
|
0 |
320 |
if (uch >= 0x110000UL) |
|
970
|
8 |
1157 |
else if (enc->json.flags & F_LATIN1) |
|
976
|
0 |
1157 |
else if (enc->json.flags & F_BINARY) |
|
982
|
915 |
242 |
else if (is_utf8) |
|
990
|
1851 |
915 |
while (--clen); |
|
1016
|
32 |
3698 |
if (enc->json.flags & F_INDENT) |
|
1035
|
40 |
3812 |
if (enc->json.flags & F_INDENT) |
|
1046
|
8 |
1204 |
if (enc->json.flags & F_INDENT) |
|
1048
|
0 |
1204 |
else if (enc->json.flags & F_SPACE_AFTER) |
|
1060
|
1 |
897 |
if (enc->indent >= enc->json.max_depth) |
|
1063
|
875 |
22 |
if (UNLIKELY (SvOK (typesv))) |
|
|
875 |
0 |
if (UNLIKELY (SvOK (typesv))) |
|
|
0 |
875 |
if (UNLIKELY (SvOK (typesv))) |
|
|
0 |
875 |
if (UNLIKELY (SvOK (typesv))) |
|
1065
|
22 |
0 |
if (SvROK (typesv) && |
|
|
16 |
6 |
if (SvROK (typesv) && |
|
1066
|
11 |
5 |
SvOBJECT (SvRV (typesv)) && |
|
1070
|
11 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
11 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
11 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
11 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
11 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
11 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
1071
|
11 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ANYOF_CLASS))) |
|
|
11 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ANYOF_CLASS))) |
|
1075
|
0 |
11 |
if (UNLIKELY (!typesv_ref)) |
|
1076
|
0 |
0 |
croak ("incorrectly constructed anyof type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("incorrectly constructed anyof type (%s, 0x%x) was specified for '%s'", |
|
1080
|
0 |
11 |
SvGETMAGIC (typesv); |
|
|
0 |
0 |
SvGETMAGIC (typesv); |
|
1081
|
0 |
11 |
if (!SvOK (typesv)) |
|
|
0 |
0 |
if (!SvOK (typesv)) |
|
|
0 |
0 |
if (!SvOK (typesv)) |
|
1082
|
0 |
0 |
croak ("no array alternative in anyof was specified for '%s'", |
|
1087
|
0 |
22 |
if (UNLIKELY (!SvROK (typesv))) |
|
1088
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1092
|
9 |
13 |
if (!SvOBJECT (SvRV (typesv)) && SvTYPE (SvRV (typesv)) == SVt_PVAV) |
|
|
9 |
0 |
if (!SvOBJECT (SvRV (typesv)) && SvTYPE (SvRV (typesv)) == SVt_PVAV) |
|
1095
|
0 |
9 |
if (len != av_len (typeav)) |
|
1096
|
0 |
0 |
croak ("array '%s' has different number of elements as in specified type '%s'", |
|
|
0 |
0 |
croak ("array '%s' has different number of elements as in specified type '%s'", |
|
1100
|
13 |
0 |
else if (SvOBJECT (SvRV (typesv)) && |
|
|
13 |
0 |
else if (SvOBJECT (SvRV (typesv)) && |
|
1104
|
13 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
13 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
13 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
13 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
13 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
13 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
1105
|
13 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ARRAYOF_CLASS))) |
|
|
13 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ARRAYOF_CLASS))) |
|
1108
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1113
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1120
|
887 |
10 |
if (len >= 0) |
|
1124
|
1736 |
872 |
for (i = 0; i <= len; ++i) |
|
1128
|
23 |
1713 |
if (typeav) |
|
1131
|
23 |
0 |
if (typerv) |
|
1137
|
1734 |
2 |
if (svp) |
|
1142
|
849 |
872 |
if (i < len) |
|
1157
|
1 |
744 |
if (He_IS_SVKEY(he)) |
|
1160
|
1 |
0 |
SV *sv = HeSVKEY (he); |
|
|
1 |
0 |
SV *sv = HeSVKEY (he); |
|
1161
|
1 |
0 |
*key = SvPV (sv, len); |
|
1172
|
4 |
741 |
if (utf8) *klen = -(*klen); |
|
1182
|
7 |
738 |
if (enc->json.flags & F_SPACE_BEFORE) encode_space (aTHX_ enc); |
|
1184
|
7 |
738 |
if (enc->json.flags & F_SPACE_AFTER ) encode_space (aTHX_ enc); |
|
1199
|
198 |
118 |
if (!(cmp = memcmp (HeKEY (b), HeKEY (a), lb < la ? lb : la))) |
|
1210
|
371 |
0 |
return sv_cmp (HeSVKEY_force (*(HE **)b), HeSVKEY_force (*(HE **)a)); |
|
|
0 |
371 |
return sv_cmp (HeSVKEY_force (*(HE **)b), HeSVKEY_force (*(HE **)a)); |
|
|
9 |
362 |
return sv_cmp (HeSVKEY_force (*(HE **)b), HeSVKEY_force (*(HE **)a)); |
|
|
371 |
0 |
return sv_cmp (HeSVKEY_force (*(HE **)b), HeSVKEY_force (*(HE **)a)); |
|
|
0 |
371 |
return sv_cmp (HeSVKEY_force (*(HE **)b), HeSVKEY_force (*(HE **)a)); |
|
|
13 |
358 |
return sv_cmp (HeSVKEY_force (*(HE **)b), HeSVKEY_force (*(HE **)a)); |
|
1219
|
1 |
392 |
if (enc->indent >= enc->json.max_depth) |
|
1222
|
375 |
17 |
if (UNLIKELY (SvOK (typesv))) |
|
|
375 |
0 |
if (UNLIKELY (SvOK (typesv))) |
|
|
0 |
375 |
if (UNLIKELY (SvOK (typesv))) |
|
|
0 |
375 |
if (UNLIKELY (SvOK (typesv))) |
|
1224
|
17 |
0 |
if (SvROK (typesv) && |
|
|
6 |
11 |
if (SvROK (typesv) && |
|
1225
|
4 |
2 |
SvOBJECT (SvRV (typesv)) && |
|
1229
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
4 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
4 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
1230
|
4 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ANYOF_CLASS))) |
|
|
4 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ANYOF_CLASS))) |
|
1234
|
0 |
4 |
if (UNLIKELY (!typesv_ref)) |
|
1235
|
0 |
0 |
croak ("incorrectly constructed anyof type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("incorrectly constructed anyof type (%s, 0x%x) was specified for '%s'", |
|
1239
|
0 |
4 |
SvGETMAGIC (typesv); |
|
|
0 |
0 |
SvGETMAGIC (typesv); |
|
1240
|
0 |
4 |
if (!SvOK (typesv)) |
|
|
0 |
0 |
if (!SvOK (typesv)) |
|
|
0 |
0 |
if (!SvOK (typesv)) |
|
1241
|
0 |
0 |
croak ("no hash alternative in anyof was specified for '%s'", |
|
1246
|
0 |
17 |
if (UNLIKELY (!SvROK (typesv))) |
|
1247
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1251
|
13 |
4 |
if (!SvOBJECT (SvRV (typesv)) && SvTYPE (SvRV (typesv)) == SVt_PVHV) |
|
|
13 |
0 |
if (!SvOBJECT (SvRV (typesv)) && SvTYPE (SvRV (typesv)) == SVt_PVHV) |
|
1253
|
4 |
0 |
else if (SvOBJECT (SvRV (typesv)) && |
|
|
4 |
0 |
else if (SvOBJECT (SvRV (typesv)) && |
|
1257
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
4 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
4 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
4 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
1258
|
4 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_HASHOF_CLASS))) |
|
|
4 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_HASHOF_CLASS))) |
|
1261
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1266
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1276
|
240 |
152 |
if (enc->json.flags & F_CANONICAL && !SvTIED_mg((SV*)hv, PERL_MAGIC_tied)) |
|
|
0 |
240 |
if (enc->json.flags & F_CANONICAL && !SvTIED_mg((SV*)hv, PERL_MAGIC_tied)) |
|
|
0 |
0 |
if (enc->json.flags & F_CANONICAL && !SvTIED_mg((SV*)hv, PERL_MAGIC_tied)) |
|
1280
|
0 |
240 |
if (SvMAGICAL (hv)) |
|
1288
|
0 |
0 |
while (hv_iternext (hv)) |
|
1294
|
234 |
6 |
if (count) |
|
1301
|
0 |
234 |
if (count > STACK_HES) |
|
1308
|
585 |
234 |
while ((he = hv_iternext (hv))) |
|
1311
|
585 |
0 |
if (HeKLEN (he) < 0 || HeKUTF8 (he)) |
|
|
3 |
582 |
if (HeKLEN (he) < 0 || HeKUTF8 (he)) |
|
1317
|
231 |
3 |
if (fast) |
|
1333
|
3 |
0 |
FREETMPS; |
|
1339
|
585 |
233 |
while (count--) |
|
1349
|
29 |
556 |
if (UNLIKELY (PTR2ul (typehv))) |
|
1352
|
0 |
29 |
if (UNLIKELY (!typesv_ref)) |
|
1358
|
0 |
585 |
encode_sv (aTHX_ enc, UNLIKELY(SvMAGICAL (hv)) ? hv_iterval (hv, he) : HeVAL (he), typesv); |
|
1360
|
351 |
233 |
if (count) |
|
1369
|
5 |
147 |
if (hv_iterinit (hv) || SvMAGICAL (hv)) |
|
|
1 |
4 |
if (hv_iterinit (hv) || SvMAGICAL (hv)) |
|
1370
|
148 |
0 |
if ((he = hv_iternext (hv))) |
|
1383
|
0 |
160 |
if (UNLIKELY (PTR2ul (typehv))) |
|
1386
|
0 |
0 |
if (UNLIKELY (!typesv_ref)) |
|
1392
|
1 |
159 |
encode_sv (aTHX_ enc, UNLIKELY(SvMAGICAL (hv)) ? hv_iterval (hv, he) : HeVAL (he), typesv); |
|
1394
|
144 |
12 |
if (!(he = hv_iternext (hv))) |
|
1432
|
9 |
2 |
if (isref && SvAMAGIC(sv)) |
|
|
9 |
0 |
if (isref && SvAMAGIC(sv)) |
|
|
9 |
0 |
if (isref && SvAMAGIC(sv)) |
|
|
9 |
0 |
if (isref && SvAMAGIC(sv)) |
|
1435
|
2 |
0 |
else if (!MyAMG(sv) && !(enc->json.flags & F_ALLOW_STRINGIFY)) { |
|
|
2 |
0 |
else if (!MyAMG(sv) && !(enc->json.flags & F_ALLOW_STRINGIFY)) { |
|
|
2 |
0 |
else if (!MyAMG(sv) && !(enc->json.flags & F_ALLOW_STRINGIFY)) { |
|
1436
|
0 |
2 |
if (isref && !(enc->json.flags & F_ALLOW_UNKNOWN)) |
|
|
0 |
0 |
if (isref && !(enc->json.flags & F_ALLOW_UNKNOWN)) |
|
1437
|
0 |
0 |
croak ("cannot encode reference to scalar '%s' unless the scalar is 0 or 1", |
|
1443
|
9 |
0 |
if (type != SVt_PVAV && type != SVt_PVHV && type != SVt_PVFM) { |
|
|
9 |
0 |
if (type != SVt_PVAV && type != SVt_PVHV && type != SVt_PVFM) { |
|
|
9 |
0 |
if (type != SVt_PVAV && type != SVt_PVHV && type != SVt_PVFM) { |
|
1448
|
0 |
9 |
SvSETMAGIC(pv); |
|
1449
|
0 |
9 |
str = SvPVutf8_force(pv, len); |
|
1470
|
0 |
9 |
if (!len) { |
|
1477
|
0 |
0 |
if (SvGMAGICAL(sv)) mg_get(sv); |
|
1478
|
0 |
0 |
if (MyAMG(sv)) { /* force a RV here */ |
|
|
0 |
0 |
if (MyAMG(sv)) { /* force a RV here */ |
|
1493
|
0 |
0 |
TAINT_IF(pv && SvTAINTED(pv)); |
|
|
0 |
0 |
TAINT_IF(pv && SvTAINTED(pv)); |
|
|
0 |
0 |
TAINT_IF(pv && SvTAINTED(pv)); |
|
|
0 |
0 |
TAINT_IF(pv && SvTAINTED(pv)); |
|
1494
|
0 |
0 |
if (pv && SvPOK(pv)) { |
|
|
0 |
0 |
if (pv && SvPOK(pv)) { |
|
1495
|
0 |
0 |
str = SvPVutf8_force(pv, len); |
|
1505
|
9 |
0 |
if (UNLIKELY(isref == 1 && (enc->json.flags & F_ALLOW_BIGNUM) && str && str[0] == '+')) { |
|
|
9 |
0 |
if (UNLIKELY(isref == 1 && (enc->json.flags & F_ALLOW_BIGNUM) && str && str[0] == '+')) { |
|
|
9 |
0 |
if (UNLIKELY(isref == 1 && (enc->json.flags & F_ALLOW_BIGNUM) && str && str[0] == '+')) { |
|
|
9 |
0 |
if (UNLIKELY(isref == 1 && (enc->json.flags & F_ALLOW_BIGNUM) && str && str[0] == '+')) { |
|
|
9 |
0 |
if (UNLIKELY(isref == 1 && (enc->json.flags & F_ALLOW_BIGNUM) && str && str[0] == '+')) { |
|
|
0 |
9 |
if (UNLIKELY(isref == 1 && (enc->json.flags & F_ALLOW_BIGNUM) && str && str[0] == '+')) { |
|
1510
|
9 |
0 |
if (UNLIKELY( |
|
|
9 |
0 |
if (UNLIKELY( |
|
|
9 |
0 |
if (UNLIKELY( |
|
|
9 |
0 |
if (UNLIKELY( |
|
|
9 |
0 |
if (UNLIKELY( |
|
|
6 |
3 |
if (UNLIKELY( |
|
|
0 |
6 |
if (UNLIKELY( |
|
|
6 |
3 |
if (UNLIKELY( |
|
|
2 |
4 |
if (UNLIKELY( |
|
|
4 |
5 |
if (UNLIKELY( |
|
|
2 |
2 |
if (UNLIKELY( |
|
|
7 |
2 |
if (UNLIKELY( |
|
1517
|
7 |
0 |
if (is_bignum_obj (aTHX_ SvRV (sv))) |
|
1519
|
4 |
3 |
if (enc->json.infnan_mode == 0) { |
|
1521
|
4 |
0 |
if (pv) SvREFCNT_dec(pv); |
|
1523
|
3 |
0 |
} else if (enc->json.infnan_mode == 3) { |
|
1524
|
2 |
1 |
if (memEQc(str, "NaN") || memEQc(str, "nan")) |
|
|
0 |
2 |
if (memEQc(str, "NaN") || memEQc(str, "nan")) |
|
1526
|
1 |
1 |
else if (memEQc(str, "inf")) |
|
1530
|
3 |
0 |
if (pv) SvREFCNT_dec(pv); |
|
1535
|
0 |
2 |
if (!str) |
|
1538
|
0 |
2 |
if (isref != 1) |
|
1541
|
0 |
2 |
if (isref != 1) |
|
1550
|
35 |
28 |
if (is_bool_obj (aTHX_ sv)) |
|
1552
|
3 |
32 |
if (as_string) |
|
1554
|
35 |
0 |
if (SvIV_nomg (sv)) |
|
|
20 |
15 |
if (SvIV_nomg (sv)) |
|
1558
|
3 |
32 |
if (as_string) |
|
1561
|
0 |
28 |
else if (force_conversion && enc->json.flags & F_CONV_BLESSED) |
|
|
0 |
0 |
else if (force_conversion && enc->json.flags & F_CONV_BLESSED) |
|
1563
|
0 |
0 |
if (as_string) |
|
1565
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
if (SvTRUE_nomg (sv)) |
|
1569
|
0 |
0 |
if (as_string) |
|
1583
|
5 |
22 |
if (bool_type == 1) |
|
1585
|
3 |
19 |
else if (bool_type == 0) |
|
1605
|
51 |
29 |
if (UNLIKELY (SvOBJECT (sv))) |
|
1607
|
28 |
23 |
if (!encode_bool_obj (aTHX_ enc, sv, 0, 0)) |
|
1610
|
7 |
21 |
if ((enc->json.flags & F_ALLOW_TAGS) |
|
1611
|
6 |
1 |
&& (method = gv_fetchmethod_autoload (stash, "FREEZE", 0))) |
|
1617
|
0 |
6 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
|
0 |
6 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
1618
|
0 |
6 |
EXTEND (SP, 2); |
|
1628
|
2 |
4 |
if (SvROK (TOPs) && SvRV (TOPs) == sv) |
|
|
0 |
2 |
if (SvROK (TOPs) && SvRV (TOPs) == sv) |
|
1629
|
0 |
0 |
croak ("%s::FREEZE method returned same object as was passed instead of a new one", |
|
|
0 |
0 |
croak ("%s::FREEZE method returned same object as was passed instead of a new one", |
|
1630
|
0 |
0 |
HvNAME (SvSTASH (sv))); |
|
|
0 |
0 |
HvNAME (SvSTASH (sv))); |
|
|
0 |
0 |
HvNAME (SvSTASH (sv))); |
|
|
0 |
0 |
HvNAME (SvSTASH (sv))); |
|
1634
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
6 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
6 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
6 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
6 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
6 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
6 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
6 |
0 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
|
0 |
6 |
encode_str (aTHX_ enc, HvNAME (stash), HvNAMELEN (stash), HvNAMEUTF8 (stash)); |
|
1639
|
255 |
6 |
while (count) |
|
1644
|
249 |
6 |
if (count) |
|
1653
|
6 |
0 |
FREETMPS; LEAVE; |
|
1655
|
18 |
4 |
else if ((enc->json.flags & F_CONV_BLESSED) |
|
1656
|
7 |
11 |
&& (method = gv_fetchmethod_autoload (stash, "TO_JSON", 0))) |
|
1660
|
0 |
7 |
ENTER; SAVETMPS; PUSHMARK (SP); |
|
1662
|
0 |
7 |
XPUSHs (rv); |
|
1670
|
3 |
4 |
if (SvROK (TOPs) && SvRV (TOPs) == sv) |
|
|
1 |
2 |
if (SvROK (TOPs) && SvRV (TOPs) == sv) |
|
1671
|
1 |
0 |
croak ("%s::TO_JSON method returned same object as was passed instead of a new one", HvNAME (SvSTASH (sv))); |
|
|
1 |
0 |
croak ("%s::TO_JSON method returned same object as was passed instead of a new one", HvNAME (SvSTASH (sv))); |
|
|
0 |
1 |
croak ("%s::TO_JSON method returned same object as was passed instead of a new one", HvNAME (SvSTASH (sv))); |
|
|
0 |
0 |
croak ("%s::TO_JSON method returned same object as was passed instead of a new one", HvNAME (SvSTASH (sv))); |
|
|
1 |
0 |
croak ("%s::TO_JSON method returned same object as was passed instead of a new one", HvNAME (SvSTASH (sv))); |
|
|
0 |
1 |
croak ("%s::TO_JSON method returned same object as was passed instead of a new one", HvNAME (SvSTASH (sv))); |
|
1678
|
6 |
0 |
FREETMPS; LEAVE; |
|
1680
|
9 |
6 |
else if ((enc->json.flags & F_ALLOW_BIGNUM) && is_bignum_obj (aTHX_ sv)) |
|
|
9 |
0 |
else if ((enc->json.flags & F_ALLOW_BIGNUM) && is_bignum_obj (aTHX_ sv)) |
|
1682
|
2 |
4 |
else if (enc->json.flags & F_CONV_BLESSED) |
|
1684
|
2 |
2 |
else if (enc->json.flags & F_ALLOW_BLESSED) |
|
1687
|
0 |
2 |
croak ("encountered object '%s', but neither allow_blessed, convert_blessed nor allow_tags settings are enabled (or TO_JSON/FREEZE method missing)", |
|
1691
|
26 |
3 |
else if (svt < SVt_PVAV && svt != SVt_PVGV && svt != SVt_PVHV && svt != SVt_PVAV) |
|
|
24 |
2 |
else if (svt < SVt_PVAV && svt != SVt_PVGV && svt != SVt_PVHV && svt != SVt_PVAV) |
|
|
24 |
0 |
else if (svt < SVt_PVAV && svt != SVt_PVGV && svt != SVt_PVHV && svt != SVt_PVAV) |
|
|
24 |
0 |
else if (svt < SVt_PVAV && svt != SVt_PVGV && svt != SVt_PVHV && svt != SVt_PVAV) |
|
1693
|
19 |
5 |
if (!encode_bool_ref (aTHX_ enc, sv)) |
|
1695
|
0 |
19 |
if (enc->json.flags & F_ALLOW_STRINGIFY) |
|
1697
|
7 |
12 |
else if (enc->json.flags & F_ALLOW_UNKNOWN) |
|
1700
|
0 |
12 |
croak ("cannot encode reference to scalar '%s' unless the scalar is 0 or 1", |
|
1704
|
2 |
3 |
else if (enc->json.flags & F_ALLOW_UNKNOWN) |
|
1707
|
0 |
3 |
croak ("encountered %s, but JSON can only represent references to arrays or hashes", |
|
1716
|
95 |
12 |
if (!SvROK (sv)) |
|
1718
|
8 |
87 |
if (UNLIKELY (sv == &PL_sv_yes)) |
|
1720
|
6 |
81 |
else if (UNLIKELY (sv == &PL_sv_no)) |
|
1722
|
1 |
80 |
else if (!SvOK (sv)) |
|
|
1 |
0 |
else if (!SvOK (sv)) |
|
|
1 |
0 |
else if (!SvOK (sv)) |
|
1724
|
80 |
0 |
else if (SvTRUE_nomg (sv)) |
|
|
0 |
80 |
else if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
else if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
else if (SvTRUE_nomg (sv)) |
|
|
46 |
34 |
else if (SvTRUE_nomg (sv)) |
|
|
46 |
0 |
else if (SvTRUE_nomg (sv)) |
|
|
15 |
31 |
else if (SvTRUE_nomg (sv)) |
|
|
12 |
3 |
else if (SvTRUE_nomg (sv)) |
|
|
6 |
6 |
else if (SvTRUE_nomg (sv)) |
|
|
37 |
9 |
else if (SvTRUE_nomg (sv)) |
|
|
34 |
0 |
else if (SvTRUE_nomg (sv)) |
|
|
18 |
16 |
else if (SvTRUE_nomg (sv)) |
|
|
2 |
16 |
else if (SvTRUE_nomg (sv)) |
|
|
16 |
2 |
else if (SvTRUE_nomg (sv)) |
|
|
12 |
4 |
else if (SvTRUE_nomg (sv)) |
|
|
28 |
6 |
else if (SvTRUE_nomg (sv)) |
|
|
0 |
0 |
else if (SvTRUE_nomg (sv)) |
|
1734
|
9 |
3 |
if (UNLIKELY (SvOBJECT (sv))) |
|
1736
|
0 |
9 |
if (!encode_bool_obj (aTHX_ enc, sv, 1, 0)) |
|
1737
|
0 |
0 |
croak ("encountered object '%s', but convert_blessed is not enabled", |
|
1740
|
3 |
0 |
else if (svt < SVt_PVAV && svt != SVt_PVGV) |
|
|
3 |
0 |
else if (svt < SVt_PVAV && svt != SVt_PVGV) |
|
1742
|
0 |
3 |
if (!encode_bool_ref (aTHX_ enc, sv)) |
|
1743
|
0 |
0 |
croak ("cannot encode reference to scalar '%s' unless the scalar is 0 or 1", |
|
1747
|
0 |
0 |
croak ("encountered %s, but does not represent boolean", |
|
1755
|
0 |
31 |
*iv = SvIV_nomg (sv); |
|
1759
|
9 |
22 |
if (!*is_neg) |
|
1761
|
0 |
9 |
*uv = SvUV_nomg (sv); |
|
1774
|
3 |
4092 |
SvGETMAGIC (sv); |
|
|
0 |
3 |
SvGETMAGIC (sv); |
|
1775
|
0 |
4095 |
SvGETMAGIC (typesv); |
|
|
0 |
0 |
SvGETMAGIC (typesv); |
|
1777
|
3661 |
434 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
3661 |
0 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
3661 |
0 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
3661 |
0 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
3661 |
434 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
20 |
3641 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
20 |
4075 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
8 |
12 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_REQUIRE_TYPES) && !(enc->json.flags & F_TYPE_ALL_STRING))) |
|
1778
|
0 |
8 |
croak ("type for '%s' was not specified", SvPV_nolen (sv)); |
|
1780
|
1426 |
2661 |
if (SvROK (sv) && !SvOBJECT (SvRV (sv))) |
|
|
1323 |
103 |
if (SvROK (sv) && !SvOBJECT (SvRV (sv))) |
|
1783
|
393 |
930 |
if (svt == SVt_PVHV) |
|
1788
|
898 |
32 |
else if (svt == SVt_PVAV) |
|
1795
|
2401 |
395 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
2401 |
0 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
2401 |
0 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
2401 |
0 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
2401 |
395 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_TYPE_ALL_STRING))) |
|
|
9 |
2392 |
if (UNLIKELY (!(SvOK (typesv)) && (enc->json.flags & F_TYPE_ALL_STRING))) |
|
1798
|
2392 |
404 |
if (UNLIKELY (SvOK (typesv))) |
|
|
2392 |
0 |
if (UNLIKELY (SvOK (typesv))) |
|
|
0 |
2392 |
if (UNLIKELY (SvOK (typesv))) |
|
|
0 |
2392 |
if (UNLIKELY (SvOK (typesv))) |
|
1800
|
55 |
349 |
if (SvROK (sv) && SvOBJECT (SvRV (sv)) && !(enc->json.flags & (F_ALLOW_TAGS|F_CONV_BLESSED|F_ALLOW_BLESSED)) && !is_bool_obj (aTHX_ SvRV (sv)) && !is_bignum_obj (aTHX_ SvRV (sv))) |
|
|
52 |
3 |
if (SvROK (sv) && SvOBJECT (SvRV (sv)) && !(enc->json.flags & (F_ALLOW_TAGS|F_CONV_BLESSED|F_ALLOW_BLESSED)) && !is_bool_obj (aTHX_ SvRV (sv)) && !is_bignum_obj (aTHX_ SvRV (sv))) |
|
|
52 |
0 |
if (SvROK (sv) && SvOBJECT (SvRV (sv)) && !(enc->json.flags & (F_ALLOW_TAGS|F_CONV_BLESSED|F_ALLOW_BLESSED)) && !is_bool_obj (aTHX_ SvRV (sv)) && !is_bignum_obj (aTHX_ SvRV (sv))) |
|
|
33 |
19 |
if (SvROK (sv) && SvOBJECT (SvRV (sv)) && !(enc->json.flags & (F_ALLOW_TAGS|F_CONV_BLESSED|F_ALLOW_BLESSED)) && !is_bool_obj (aTHX_ SvRV (sv)) && !is_bignum_obj (aTHX_ SvRV (sv))) |
|
|
1 |
32 |
if (SvROK (sv) && SvOBJECT (SvRV (sv)) && !(enc->json.flags & (F_ALLOW_TAGS|F_CONV_BLESSED|F_ALLOW_BLESSED)) && !is_bool_obj (aTHX_ SvRV (sv)) && !is_bignum_obj (aTHX_ SvRV (sv))) |
|
1801
|
0 |
1 |
croak ("encountered object '%s', but neither allow_blessed, convert_blessed nor allow_tags settings are enabled (or TO_JSON/FREEZE method missing)", SvPV_nolen (sv)); |
|
1803
|
83 |
320 |
if (!SvIOKp (typesv)) |
|
1805
|
83 |
0 |
if (SvROK (typesv) && |
|
|
83 |
0 |
if (SvROK (typesv) && |
|
1806
|
83 |
0 |
SvOBJECT (SvRV (typesv)) && |
|
1810
|
83 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
83 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
83 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
83 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
83 |
0 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
|
0 |
83 |
char *name = LIKELY (!!stash) ? HvNAME (stash) : NULL; |
|
1811
|
83 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ANYOF_CLASS))) |
|
|
83 |
0 |
if (LIKELY (name && strEQ (name, JSON_TYPE_ANYOF_CLASS))) |
|
1815
|
0 |
83 |
if (UNLIKELY (!typesv_ref)) |
|
1816
|
0 |
0 |
croak ("incorrectly constructed anyof type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("incorrectly constructed anyof type (%s, 0x%x) was specified for '%s'", |
|
1820
|
0 |
83 |
SvGETMAGIC (typesv); |
|
|
0 |
0 |
SvGETMAGIC (typesv); |
|
1821
|
0 |
83 |
if (!SvIOKp (typesv)) |
|
1822
|
0 |
0 |
croak ("no scalar alternative in anyof was specified for '%s'", SvPV_nolen (sv)); |
|
1825
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1830
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
|
0 |
0 |
croak ("encountered type (%s, 0x%x) was specified for '%s'", |
|
1837
|
401 |
2394 |
if (UNLIKELY (type)) |
|
1845
|
2390 |
4 |
if (UNLIKELY (sv == &PL_sv_yes || sv == &PL_sv_no)) type = JSON_TYPE_BOOL; |
|
|
4 |
2386 |
if (UNLIKELY (sv == &PL_sv_yes || sv == &PL_sv_no)) type = JSON_TYPE_BOOL; |
|
1846
|
78 |
2308 |
else if (SvNOKp (sv)) type = JSON_TYPE_FLOAT; |
|
1847
|
872 |
1436 |
else if (SvIOKp (sv)) type = JSON_TYPE_INT; |
|
1848
|
1314 |
122 |
else if (SvPOKp (sv)) type = JSON_TYPE_STRING; |
|
1849
|
80 |
42 |
else if (SvROK (sv)) process_ref = 1; |
|
1850
|
42 |
0 |
else if (!SvOK (sv)) can_be_null = 1; |
|
|
42 |
0 |
else if (!SvOK (sv)) can_be_null = 1; |
|
|
42 |
0 |
else if (!SvOK (sv)) can_be_null = 1; |
|
1853
|
159 |
2636 |
if (can_be_null && !SvOK (sv)) |
|
|
55 |
104 |
if (can_be_null && !SvOK (sv)) |
|
|
55 |
0 |
if (can_be_null && !SvOK (sv)) |
|
|
55 |
0 |
if (can_be_null && !SvOK (sv)) |
|
1855
|
107 |
2633 |
else if (type == JSON_TYPE_BOOL) |
|
1857
|
161 |
2472 |
else if (type == JSON_TYPE_FLOAT) |
|
1873
|
19 |
142 |
if (UNLIKELY (SvROK (sv) && SvOBJECT (SvRV (sv))) && (enc->json.flags & F_ALLOW_BIGNUM) && is_bignum_obj (aTHX_ SvRV (sv))) |
|
|
19 |
0 |
if (UNLIKELY (SvROK (sv) && SvOBJECT (SvRV (sv))) && (enc->json.flags & F_ALLOW_BIGNUM) && is_bignum_obj (aTHX_ SvRV (sv))) |
|
|
16 |
3 |
if (UNLIKELY (SvROK (sv) && SvOBJECT (SvRV (sv))) && (enc->json.flags & F_ALLOW_BIGNUM) && is_bignum_obj (aTHX_ SvRV (sv))) |
|
|
16 |
0 |
if (UNLIKELY (SvROK (sv) && SvOBJECT (SvRV (sv))) && (enc->json.flags & F_ALLOW_BIGNUM) && is_bignum_obj (aTHX_ SvRV (sv))) |
|
1876
|
16 |
145 |
if (UNLIKELY (is_bigobj)) |
|
1879
|
0 |
16 |
char *str = SvPV_nomg (sv, len); |
|
1880
|
0 |
16 |
if (UNLIKELY (str[0] == '+')) |
|
1885
|
14 |
2 |
if (UNLIKELY (memEQc (str, "NaN") || memEQc (str, "nan"))) |
|
|
0 |
14 |
if (UNLIKELY (memEQc (str, "NaN") || memEQc (str, "nan"))) |
|
1890
|
2 |
12 |
else if (UNLIKELY (memEQc (str, "inf"))) |
|
1895
|
2 |
10 |
else if (UNLIKELY (memEQc (str, "-inf"))) |
|
1909
|
116 |
29 |
else if (SvNOKp (sv)) |
|
1915
|
15 |
14 |
if (enc->json.flags & F_ALLOW_BIGNUM) |
|
1923
|
15 |
0 |
str = SvPV_nomg (sv, len); |
|
1926
|
2 |
13 |
if (UNLIKELY (numtype & IS_NUMBER_INFINITY)) |
|
1927
|
1 |
1 |
nv = (numtype & IS_NUMBER_NEG) ? -NV_INF : NV_INF; |
|
1928
|
1 |
12 |
else if (UNLIKELY (numtype & IS_NUMBER_NAN)) |
|
1930
|
0 |
12 |
else if (UNLIKELY (!numtype)) |
|
1931
|
0 |
0 |
nv = SvNV_nomg (sv); |
|
1942
|
12 |
0 |
errsv = ERRSV; |
|
1943
|
0 |
12 |
if (SvROK (errsv)) |
|
1945
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
1954
|
0 |
12 |
str = SvPV (pv, len); |
|
1955
|
0 |
12 |
if (UNLIKELY (str[0] == '+')) |
|
1987
|
0 |
14 |
nv = SvNV_nomg (sv); |
|
1992
|
139 |
22 |
if (LIKELY (!is_bigobj)) |
|
1999
|
61 |
78 |
if (force_conversion) |
|
2005
|
16 |
45 |
if (UNLIKELY(isinf(nv))) |
|
2007
|
8 |
8 |
nv = (nv > 0) ? NV_MAX : -NV_MAX; |
|
2011
|
6 |
55 |
if (UNLIKELY(isnan(nv))) |
|
2016
|
63 |
15 |
else if (enc->json.infnan_mode == 0) |
|
2021
|
2 |
61 |
if (UNLIKELY(isinf(nv))) |
|
2024
|
1 |
1 |
inf_or_nan = (nv > 0) ? 1 : 2; |
|
2030
|
3 |
58 |
if (UNLIKELY(isnan(nv))) |
|
2085
|
3 |
131 |
if (UNLIKELY(strEQc(enc->cur, STR_INF))) |
|
2106
|
3 |
128 |
(UNLIKELY(strEQc(enc->cur, STR_NAN))) |
|
2109
|
25 |
103 |
else if (*enc->cur == '-') { |
|
2119
|
3 |
22 |
if (UNLIKELY(strEQc(enc->cur+1, STR_INF))) |
|
2134
|
6 |
16 |
(UNLIKELY(strEQc(enc->cur+1, STR_NAN))) |
|
2138
|
15 |
119 |
if (UNLIKELY(inf_or_nan)) { |
|
2140
|
5 |
15 |
if (enc->json.infnan_mode == 0) { |
|
2143
|
5 |
10 |
else if (enc->json.infnan_mode == 1) { |
|
2150
|
5 |
5 |
else if (enc->json.infnan_mode == 3) { |
|
2151
|
1 |
4 |
if (inf_or_nan == 1) |
|
2153
|
1 |
3 |
else if (inf_or_nan == 2) |
|
2155
|
3 |
0 |
else if (inf_or_nan == 3) |
|
2158
|
0 |
5 |
else if (enc->json.infnan_mode != 2) { |
|
2166
|
78 |
83 |
if (!force_conversion && SvPOKp (sv) && !strEQ(enc->cur, SvPVX (sv))) { |
|
|
4 |
74 |
if (!force_conversion && SvPOKp (sv) && !strEQ(enc->cur, SvPVX (sv))) { |
|
|
3 |
1 |
if (!force_conversion && SvPOKp (sv) && !strEQ(enc->cur, SvPVX (sv))) { |
|
2178
|
138 |
20 |
if (!( inf_or_nan || (had_nokp && Perl_modf(SvNVX(sv), &intpart)) || (!force_conversion && SvIOK(sv)) |
|
|
55 |
83 |
if (!( inf_or_nan || (had_nokp && Perl_modf(SvNVX(sv), &intpart)) || (!force_conversion && SvIOK(sv)) |
|
|
30 |
25 |
if (!( inf_or_nan || (had_nokp && Perl_modf(SvNVX(sv), &intpart)) || (!force_conversion && SvIOK(sv)) |
|
|
30 |
83 |
if (!( inf_or_nan || (had_nokp && Perl_modf(SvNVX(sv), &intpart)) || (!force_conversion && SvIOK(sv)) |
|
|
25 |
5 |
if (!( inf_or_nan || (had_nokp && Perl_modf(SvNVX(sv), &intpart)) || (!force_conversion && SvIOK(sv)) |
|
|
73 |
12 |
if (!( inf_or_nan || (had_nokp && Perl_modf(SvNVX(sv), &intpart)) || (!force_conversion && SvIOK(sv)) |
|
2179
|
85 |
23 |
|| strchr(enc->cur,'e') || strchr(enc->cur,'E') || strchr(savecur,'.') |
|
|
85 |
0 |
|| strchr(enc->cur,'e') || strchr(enc->cur,'E') || strchr(savecur,'.') |
|
2193
|
1014 |
1458 |
else if (type == JSON_TYPE_INT) |
|
2203
|
20 |
994 |
if (UNLIKELY (SvROK (sv) && SvOBJECT (SvRV (sv))) && (enc->json.flags & F_ALLOW_BIGNUM)) |
|
|
20 |
0 |
if (UNLIKELY (SvROK (sv) && SvOBJECT (SvRV (sv))) && (enc->json.flags & F_ALLOW_BIGNUM)) |
|
|
16 |
4 |
if (UNLIKELY (SvROK (sv) && SvOBJECT (SvRV (sv))) && (enc->json.flags & F_ALLOW_BIGNUM)) |
|
2206
|
16 |
0 |
int is_bigint = (stash && stash == gv_stashpvs ("Math::BigInt", 0)); |
|
|
8 |
8 |
int is_bigint = (stash && stash == gv_stashpvs ("Math::BigInt", 0)); |
|
2207
|
16 |
0 |
int is_bigfloat = (stash && stash == gv_stashpvs ("Math::BigFloat", 0)); |
|
|
8 |
8 |
int is_bigfloat = (stash && stash == gv_stashpvs ("Math::BigFloat", 0)); |
|
2209
|
8 |
8 |
if (is_bigint || is_bigfloat) |
|
|
8 |
0 |
if (is_bigint || is_bigfloat) |
|
2214
|
8 |
8 |
if (is_bigfloat) |
|
2222
|
0 |
8 |
PUSHMARK (SP); |
|
2223
|
0 |
8 |
XPUSHs (sv); |
|
2229
|
8 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
8 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
8 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
8 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
8 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
8 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
5 |
3 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
5 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
|
3 |
5 |
is_negative = SvTRUEx (POPs); |
|
|
0 |
0 |
is_negative = SvTRUEx (POPs); |
|
2232
|
0 |
8 |
PUSHMARK (SP); |
|
2233
|
0 |
8 |
XPUSHs (sv); |
|
2241
|
3 |
5 |
call_method (is_negative ? "bceil" : "bfloor", G_SCALAR); |
|
2248
|
0 |
16 |
str = SvPV_nomg (sv, len); |
|
2249
|
0 |
16 |
if (UNLIKELY (str[0] == '+')) |
|
2255
|
14 |
2 |
if (UNLIKELY (strEQc (str, "NaN") || strEQc (str, "nan"))) |
|
|
0 |
14 |
if (UNLIKELY (strEQc (str, "NaN") || strEQc (str, "nan"))) |
|
2259
|
2 |
12 |
else if (UNLIKELY (strEQc (str, "inf"))) |
|
2266
|
2 |
10 |
else if (UNLIKELY (strEQc (str, "-inf"))) |
|
2283
|
8 |
8 |
if (is_bigfloat) |
|
2285
|
8 |
0 |
FREETMPS; |
|
2293
|
915 |
83 |
if (SvIOK (sv)) |
|
2299
|
56 |
27 |
else if (SvPOKp (sv)) |
|
2302
|
42 |
14 |
if (numtype & IS_NUMBER_IN_UV) |
|
2304
|
10 |
32 |
if (numtype & IS_NUMBER_NEG) |
|
2307
|
3 |
7 |
if (LIKELY(uv <= (UV)(IV_MAX) + 1)) |
|
2319
|
2 |
12 |
else if (UNLIKELY (numtype & IS_NUMBER_INFINITY)) |
|
2322
|
1 |
1 |
if (is_neg) |
|
2334
|
20 |
36 |
if ((numtype & (IS_NUMBER_GREATER_THAN_UV_MAX|IS_NUMBER_NOT_INT)) && (enc->json.flags & F_ALLOW_BIGNUM)) |
|
|
12 |
8 |
if ((numtype & (IS_NUMBER_GREATER_THAN_UV_MAX|IS_NUMBER_NOT_INT)) && (enc->json.flags & F_ALLOW_BIGNUM)) |
|
2341
|
6 |
6 |
if (numtype & IS_NUMBER_NOT_INT) |
|
2348
|
6 |
6 |
if (numtype & IS_NUMBER_NOT_INT) |
|
2362
|
12 |
0 |
errsv = ERRSV; |
|
2363
|
0 |
12 |
if (SvROK (errsv)) |
|
2365
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
12 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
12 |
else if (SvTRUE (errsv)) |
|
2374
|
0 |
12 |
str = SvPV (pv, len); |
|
2375
|
0 |
12 |
if (UNLIKELY (str[0] == '+')) |
|
2389
|
4 |
40 |
else if (!(numtype & (IS_NUMBER_IN_UV|IS_NUMBER_INFINITY|IS_NUMBER_NAN))) |
|
2424
|
943 |
43 |
if (is_neg ? iv <= 59000 && iv >= -59000 |
|
|
940 |
3 |
if (is_neg ? iv <= 59000 && iv >= -59000 |
|
|
930 |
10 |
if (is_neg ? iv <= 59000 && iv >= -59000 |
|
|
957 |
29 |
if (is_neg ? iv <= 59000 && iv >= -59000 |
|
2438
|
10 |
947 |
*enc->cur = '-'; enc->cur += i < 0 ? 1 : 0; |
|
2449
|
957 |
0 |
digit = u >> 28; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0xfffffffUL) * 5; |
|
|
7 |
950 |
digit = u >> 28; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0xfffffffUL) * 5; |
|
2450
|
950 |
7 |
digit = u >> 27; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0x7ffffffUL) * 5; |
|
|
4 |
946 |
digit = u >> 27; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0x7ffffffUL) * 5; |
|
2451
|
946 |
11 |
digit = u >> 26; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0x3ffffffUL) * 5; |
|
|
5 |
941 |
digit = u >> 26; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0x3ffffffUL) * 5; |
|
2452
|
941 |
16 |
digit = u >> 25; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0x1ffffffUL) * 5; |
|
|
68 |
873 |
digit = u >> 25; *enc->cur = digit + '0'; enc->cur += (nz = nz || digit); u = (u & 0x1ffffffUL) * 5; |
|
2465
|
16 |
13 |
: snprintf (enc->cur, IVUV_MAXCHARS, "%" IVdf, iv); |
|
2468
|
872 |
114 |
if (!force_conversion && SvPOKp (sv) && !strEQ(savecur, SvPVX (sv))) { |
|
|
19 |
853 |
if (!force_conversion && SvPOKp (sv) && !strEQ(savecur, SvPVX (sv))) { |
|
|
1 |
18 |
if (!force_conversion && SvPOKp (sv) && !strEQ(savecur, SvPVX (sv))) { |
|
2479
|
1378 |
80 |
else if (type == JSON_TYPE_STRING) |
|
2481
|
0 |
1378 |
if (UNLIKELY (sv == &PL_sv_yes)) |
|
2487
|
0 |
1378 |
else if (UNLIKELY (sv == &PL_sv_no)) |
|
2493
|
3 |
1375 |
else if (!UNLIKELY (SvROK(sv) && SvOBJECT (SvRV(sv))) || !encode_bool_obj (aTHX_ enc, SvRV(sv), 0, 1)) |
|
|
3 |
0 |
else if (!UNLIKELY (SvROK(sv) && SvOBJECT (SvRV(sv))) || !encode_bool_obj (aTHX_ enc, SvRV(sv), 0, 1)) |
|
|
0 |
3 |
else if (!UNLIKELY (SvROK(sv) && SvOBJECT (SvRV(sv))) || !encode_bool_obj (aTHX_ enc, SvRV(sv), 0, 1)) |
|
2497
|
1355 |
20 |
if (SvPOKp (sv)) |
|
2504
|
0 |
20 |
str = SvPV_nomg (sv, len); |
|
2511
|
80 |
0 |
else if (process_ref) |
|
2513
|
0 |
0 |
else if (enc->json.flags & F_ALLOW_UNKNOWN) |
|
2516
|
0 |
0 |
croak ("encountered perl type (%s,0x%x) that JSON cannot handle, check your input data", |
|
2525
|
955 |
400 |
if (!(json->flags & F_ALLOW_NONREF) && json_nonref (aTHX_ scalar)) |
|
|
0 |
955 |
if (!(json->flags & F_ALLOW_NONREF) && json_nonref (aTHX_ scalar)) |
|
2534
|
1243 |
112 |
: enc.json.flags & F_BINARY ? 0x000080UL |
|
2535
|
1040 |
203 |
: enc.json.flags & F_LATIN1 ? 0x000100UL |
|
2536
|
5 |
1035 |
: 0x110000UL; |
|
2545
|
677 |
649 |
if (!(enc.json.flags & (F_ASCII | F_LATIN1 | F_BINARY | F_UTF8))) |
|
2548
|
200 |
1126 |
if (enc.json.flags & F_SHRINK) |
|
2573
|
47 |
0 |
while (*dec->cur && *dec->cur != 0x0a && *dec->cur != 0x0d) |
|
|
38 |
9 |
while (*dec->cur && *dec->cur != 0x0a && *dec->cur != 0x0d) |
|
|
38 |
0 |
while (*dec->cur && *dec->cur != 0x0a && *dec->cur != 0x0d) |
|
2584
|
38262 |
80408 |
if (ch > 0x20) |
|
2586
|
11 |
38251 |
if (UNLIKELY(ch == '#')) |
|
2588
|
9 |
2 |
if (dec->json.flags & F_RELAXED) |
|
2596
|
8577 |
71831 |
else if (ch != 0x20 && ch != 0x0a && ch != 0x0d && ch != 0x09) |
|
|
863 |
7714 |
else if (ch != 0x20 && ch != 0x0a && ch != 0x0d && ch != 0x09) |
|
|
863 |
0 |
else if (ch != 0x20 && ch != 0x0a && ch != 0x0d && ch != 0x09) |
|
|
861 |
2 |
else if (ch != 0x20 && ch != 0x0a && ch != 0x0d && ch != 0x09) |
|
3146
|
3 |
2141 |
d1 = decode_hexdigit [cur [0]]; if (UNLIKELY(d1 < 0)) ERR ("exactly four hexadecimal digits expected"); |
|
3147
|
2 |
2139 |
d2 = decode_hexdigit [cur [1]]; if (UNLIKELY(d2 < 0)) ERR ("exactly four hexadecimal digits expected"); |
|
3148
|
1 |
2138 |
d3 = decode_hexdigit [cur [2]]; if (UNLIKELY(d3 < 0)) ERR ("exactly four hexadecimal digits expected"); |
|
3149
|
1 |
2137 |
d4 = decode_hexdigit [cur [3]]; if (UNLIKELY(d4 < 0)) ERR ("exactly four hexadecimal digits expected"); |
|
3168
|
0 |
2506 |
d1 = decode_hexdigit [cur [0]]; if (UNLIKELY(d1 < 0)) ERR ("exactly two hexadecimal digits expected"); |
|
3169
|
0 |
2506 |
d2 = decode_hexdigit [cur [1]]; if (UNLIKELY(d2 < 0)) ERR ("exactly two hexadecimal digits expected"); |
|
3183
|
0 |
0 |
d1 = (IV)(cur[0] - '0'); if (d1 < 0 || d1 > 7) ERR ("exactly three octal digits expected"); |
|
|
0 |
0 |
d1 = (IV)(cur[0] - '0'); if (d1 < 0 || d1 > 7) ERR ("exactly three octal digits expected"); |
|
3184
|
0 |
0 |
d2 = (IV)(cur[1] - '0'); if (d2 < 0 || d2 > 7) ERR ("exactly three octal digits expected"); |
|
|
0 |
0 |
d2 = (IV)(cur[1] - '0'); if (d2 < 0 || d2 > 7) ERR ("exactly three octal digits expected"); |
|
3185
|
0 |
0 |
d3 = (IV)(cur[2] - '0'); if (d3 < 0 || d3 > 7) ERR ("exactly three octal digits expected"); |
|
|
0 |
0 |
d3 = (IV)(cur[2] - '0'); if (d3 < 0 || d3 > 7) ERR ("exactly three octal digits expected"); |
|
3210
|
6445 |
121509 |
if (UNLIKELY(ch == endstr)) |
|
3212
|
7 |
6438 |
if (ch == 0x27 && !(dec->json.flags & F_ALLOW_SQUOTE)) { |
|
|
0 |
7 |
if (ch == 0x27 && !(dec->json.flags & F_ALLOW_SQUOTE)) { |
|
3218
|
5436 |
116073 |
else if (UNLIKELY(ch == '\\')) |
|
3235
|
2 |
2506 |
if (!(dec->json.flags & F_BINARY)) |
|
3240
|
0 |
2506 |
if (c == (UV)-1) |
|
3250
|
1 |
0 |
if (!(dec->json.flags & F_BINARY)) |
|
3254
|
0 |
0 |
if (c == (UV)-1) |
|
3268
|
3 |
1799 |
if (hi == (UV)-1) |
|
3270
|
0 |
1799 |
if (dec->json.flags & F_BINARY) |
|
3274
|
372 |
1427 |
if (hi >= 0xd800) { |
|
3275
|
352 |
20 |
if (hi < 0xdc00) { |
|
3276
|
345 |
7 |
if (dec_cur [0] != '\\' || dec_cur [1] != 'u') |
|
|
3 |
342 |
if (dec_cur [0] != '\\' || dec_cur [1] != 'u') |
|
3284
|
4 |
338 |
if (lo == (UV)-1) |
|
3287
|
332 |
6 |
if (lo < 0xdc00 || lo >= 0xe000) |
|
|
0 |
332 |
if (lo < 0xdc00 || lo >= 0xe000) |
|
3291
|
330 |
2 |
if (UNLIKELY( |
|
|
325 |
5 |
if (UNLIKELY( |
|
|
0 |
325 |
if (UNLIKELY( |
|
|
5 |
325 |
if (UNLIKELY( |
|
3298
|
9 |
11 |
else if (UNLIKELY(hi < 0xe000)) { |
|
3322
|
8 |
3 |
if (UNLIKELY( |
|
|
4 |
4 |
if (UNLIKELY( |
|
|
2 |
2 |
if (UNLIKELY( |
|
|
6 |
2 |
if (UNLIKELY( |
|
|
2 |
4 |
if (UNLIKELY( |
|
|
2 |
0 |
if (UNLIKELY( |
|
|
2 |
4 |
if (UNLIKELY( |
|
|
4 |
4 |
if (UNLIKELY( |
|
3329
|
1093 |
677 |
if (hi >= 0x80) |
|
3344
|
116056 |
17 |
else if (LIKELY(ch >= 0x20 && ch < 0x80)) { |
|
|
114885 |
1171 |
else if (LIKELY(ch >= 0x20 && ch < 0x80)) { |
|
3348
|
1171 |
17 |
else if (ch >= 0x80) |
|
3356
|
60 |
1111 |
if (clen == (STRLEN)-1) |
|
3361
|
1831 |
1111 |
while (--clen); |
|
3365
|
1 |
16 |
else if (dec->json.flags & F_RELAXED && ch == '\t') { |
|
|
1 |
0 |
else if (dec->json.flags & F_RELAXED && ch == '\t') { |
|
3371
|
9 |
7 |
if (!ch) |
|
3377
|
121386 |
2 |
while (cur < buf + SHORT_STRING_LEN); |
|
3382
|
1 |
6446 |
if (sv) |
|
3386
|
1 |
0 |
if (SvLEN (sv) <= cur + len) |
|
3387
|
1 |
0 |
SvGROW (sv, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1); |
|
|
1 |
0 |
SvGROW (sv, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1); |
|
3396
|
1 |
6446 |
while (*dec_cur != endstr); |
|
3400
|
6446 |
0 |
if (sv) |
|
3405
|
435 |
6011 |
if (utf8) |
|
3438
|
57 |
909 |
if (*dec->cur == '-') |
|
3441
|
119 |
847 |
if (*dec->cur == '0') |
|
3444
|
29 |
90 |
if (*dec->cur >= '0' && *dec->cur <= '9') |
|
|
6 |
23 |
if (*dec->cur >= '0' && *dec->cur <= '9') |
|
3447
|
845 |
2 |
else if (*dec->cur < '0' || *dec->cur > '9') |
|
|
5 |
840 |
else if (*dec->cur < '0' || *dec->cur > '9') |
|
3454
|
635 |
604 |
while (*dec->cur >= '0' && *dec->cur <= '9'); |
|
|
399 |
236 |
while (*dec->cur >= '0' && *dec->cur <= '9'); |
|
3457
|
66 |
887 |
if (*dec->cur == '.') |
|
3461
|
65 |
1 |
if (*dec->cur < '0' || *dec->cur > '9') |
|
|
7 |
58 |
if (*dec->cur < '0' || *dec->cur > '9') |
|
3468
|
231 |
24 |
while (*dec->cur >= '0' && *dec->cur <= '9'); |
|
|
197 |
34 |
while (*dec->cur >= '0' && *dec->cur <= '9'); |
|
3474
|
892 |
53 |
if (*dec->cur == 'e' || *dec->cur == 'E') |
|
|
8 |
884 |
if (*dec->cur == 'e' || *dec->cur == 'E') |
|
3478
|
50 |
11 |
if (*dec->cur == '-' || *dec->cur == '+') |
|
|
23 |
27 |
if (*dec->cur == '-' || *dec->cur == '+') |
|
3481
|
57 |
4 |
if (*dec->cur < '0' || *dec->cur > '9') |
|
|
13 |
44 |
if (*dec->cur < '0' || *dec->cur > '9') |
|
3488
|
200 |
21 |
while (*dec->cur >= '0' && *dec->cur <= '9'); |
|
|
177 |
23 |
while (*dec->cur >= '0' && *dec->cur <= '9'); |
|
3493
|
847 |
81 |
if (!is_nv) |
|
3497
|
7 |
840 |
if (typesv) |
|
3501
|
28 |
819 |
if (*start == '-') |
|
3523
|
10 |
6 |
if (numtype & IS_NUMBER_IN_UV) { |
|
3524
|
2 |
8 |
if (numtype & IS_NUMBER_NEG) |
|
3526
|
2 |
0 |
if (uv <= (UV)(IV_MAX) + 1) |
|
3537
|
0 |
6 |
if ((sizeof (NV) == sizeof (double) && DBL_DIG >= len) |
|
3545
|
2 |
4 |
if (dec->json.flags & F_ALLOW_BIGNUM) { |
|
3553
|
2 |
0 |
errsv = ERRSV; |
|
3554
|
0 |
2 |
if (SvROK (errsv)) |
|
3556
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
3570
|
4 |
77 |
if (typesv) |
|
3573
|
2 |
79 |
if (dec->json.flags & F_ALLOW_BIGNUM) { |
|
3581
|
2 |
0 |
errsv = ERRSV; |
|
3582
|
0 |
2 |
if (SvROK (errsv)) |
|
3584
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
2 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
0 |
else if (SvTRUE (errsv)) |
|
|
0 |
2 |
else if (SvTRUE (errsv)) |
|
3608
|
5 |
4222 |
DEC_INC_DEPTH; |
|
3611
|
5 |
4217 |
if (typesv) |
|
3615
|
5 |
0 |
SvSetMagicSV (typesv, typerv); |
|
|
0 |
5 |
SvSetMagicSV (typesv, typerv); |
|
3618
|
29 |
4193 |
if (*dec->cur == ']') |
|
3626
|
13 |
6364 |
if (typesv) |
|
3633
|
1506 |
4871 |
if (!value) |
|
3640
|
2658 |
2213 |
if (*dec->cur == ']') |
|
3646
|
27 |
2186 |
if (*dec->cur != ',') |
|
3653
|
5 |
2181 |
if (*dec->cur == ']' && dec->json.flags & F_RELAXED) |
|
|
2 |
3 |
if (*dec->cur == ']' && dec->json.flags & F_RELAXED) |
|
3681
|
0 |
2713 |
DEC_INC_DEPTH; |
|
3684
|
2 |
2711 |
if (typesv) |
|
3688
|
2 |
0 |
SvSetMagicSV (typesv, typerv); |
|
|
0 |
2 |
SvSetMagicSV (typesv, typerv); |
|
3691
|
17 |
2696 |
if (*dec->cur == '}') |
|
3698
|
19 |
6590 |
if (UNLIKELY(allow_barekey |
|
|
6 |
13 |
if (UNLIKELY(allow_barekey |
|
|
6 |
6603 |
if (UNLIKELY(allow_barekey |
|
|
6 |
0 |
if (UNLIKELY(allow_barekey |
|
3701
|
16 |
6587 |
else if (UNLIKELY(allow_squote)) { |
|
3702
|
5 |
11 |
if (*dec->cur != '"' && *dec->cur != 0x27) { |
|
|
1 |
4 |
if (*dec->cur != '"' && *dec->cur != 0x27) { |
|
3705
|
4 |
11 |
else if (*dec->cur == 0x27) |
|
3710
|
24 |
6563 |
EXPECT_CH ('"'); |
|
3728
|
52845 |
21 |
if (!is_bare && |
|
|
52785 |
60 |
if (!is_bare && |
|
3729
|
52781 |
4 |
(p == e || *p < 0x20 || *(U8*)p >= 0x80 || *p == '\\' |
|
|
52781 |
0 |
(p == e || *p < 0x20 || *(U8*)p >= 0x80 || *p == '\\' |
|
|
52578 |
203 |
(p == e || *p < 0x20 || *(U8*)p >= 0x80 || *p == '\\' |
|
3730
|
14 |
52564 |
|| allow_squote)) |
|
3735
|
4 |
277 |
if (!key) |
|
3738
|
269 |
8 |
if (!allow_dupkeys && UNLIKELY(hv_exists_ent (hv, key, 0))) { |
|
|
1 |
268 |
if (!allow_dupkeys && UNLIKELY(hv_exists_ent (hv, key, 0))) { |
|
3741
|
0 |
276 |
decode_ws (dec); EXPECT_CH (':'); |
|
3744
|
0 |
276 |
if (typesv) |
|
3751
|
1 |
275 |
if (!value) |
|
3762
|
46288 |
6297 |
else if (*p == endstr |
|
3763
|
21 |
46267 |
|| (is_bare && |
|
|
17 |
4 |
|| (is_bare && |
|
3764
|
16 |
1 |
(*p == ':' || *p == ' ' || *p == 0x0a |
|
|
16 |
0 |
(*p == ':' || *p == ' ' || *p == 0x0a |
|
3765
|
16 |
0 |
|| *p == 0x0d || *p == 0x09))) |
|
|
1 |
15 |
|| *p == 0x0d || *p == 0x09))) |
|
3774
|
0 |
6303 |
if (UNLIKELY(p - key > I32_MAX)) |
|
3777
|
6298 |
5 |
if (!allow_dupkeys && UNLIKELY(hv_exists (hv, key, len))) { |
|
|
6 |
6292 |
if (!allow_dupkeys && UNLIKELY(hv_exists (hv, key, len))) { |
|
3782
|
6293 |
4 |
decode_ws (dec); if (*p != ':') EXPECT_CH (':'); |
|
|
8 |
6285 |
decode_ws (dec); if (*p != ':') EXPECT_CH (':'); |
|
3785
|
9 |
6280 |
if (typesv) |
|
3792
|
776 |
5513 |
if (!value) |
|
3811
|
1869 |
3919 |
if (*dec->cur == '}') |
|
3817
|
5 |
3914 |
if (*dec->cur != ',') |
|
3824
|
3 |
3911 |
if (*dec->cur == '}' && dec->json.flags & F_RELAXED) |
|
|
1 |
2 |
if (*dec->cur == '}' && dec->json.flags & F_RELAXED) |
|
3835
|
14 |
1873 |
if (dec->json.flags & F_HOOK) |
|
3837
|
11 |
3 |
if (dec->json.cb_sk_object && HvKEYS (hv) == 1) |
|
|
0 |
11 |
if (dec->json.cb_sk_object && HvKEYS (hv) == 1) |
|
|
7 |
4 |
if (dec->json.cb_sk_object && HvKEYS (hv) == 1) |
|
3847
|
7 |
0 |
if (LIKELY((long)he)) |
|
3850
|
6 |
1 |
if (cb) |
|
3855
|
0 |
6 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
|
0 |
6 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
3856
|
0 |
6 |
XPUSHs (HeVAL (he)); |
|
3861
|
4 |
2 |
if (count == 1) |
|
3864
|
4 |
0 |
PUTBACK; FREETMPS; LEAVE; |
|
3870
|
2 |
0 |
PUTBACK; FREETMPS; LEAVE; |
|
3874
|
8 |
2 |
if (dec->json.cb_object) |
|
3879
|
0 |
8 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
|
0 |
8 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
3880
|
0 |
8 |
XPUSHs (sv_2mortal (sv)); |
|
3884
|
3 |
5 |
if (count == 1) |
|
3887
|
3 |
0 |
PUTBACK; FREETMPS; LEAVE; |
|
3893
|
5 |
0 |
PUTBACK; FREETMPS; LEAVE; |
|
3911
|
0 |
1 |
if (!(dec->json.flags & F_ALLOW_TAGS)) |
|
3919
|
0 |
1 |
if (!tag) |
|
3922
|
0 |
1 |
if (!SvPOK (tag)) |
|
3927
|
0 |
1 |
if (*dec->cur != ')') |
|
3935
|
0 |
1 |
if (!val) |
|
3938
|
1 |
0 |
if (!SvROK (val) || SvTYPE (SvRV (val)) != SVt_PVAV) |
|
|
0 |
1 |
if (!SvROK (val) || SvTYPE (SvRV (val)) != SVt_PVAV) |
|
3950
|
0 |
1 |
if (!stash) |
|
3955
|
0 |
1 |
if (!method) |
|
3958
|
0 |
1 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
|
0 |
1 |
ENTER; SAVETMPS; SAVESTACK_POS (); PUSHMARK (SP); |
|
3959
|
1 |
0 |
EXTEND (SP, len + 2); |
|
|
0 |
1 |
EXTEND (SP, len + 2); |
|
3964
|
3 |
1 |
for (i = 0; i < len; ++i) |
|
3977
|
1 |
0 |
FREETMPS; LEAVE; |
|
3997
|
5 |
6278 |
if (typesv) |
|
4001
|
3 |
3 |
if (dec->json.flags & F_ALLOW_SQUOTE) { |
|
4003
|
0 |
3 |
if (typesv) |
|
4019
|
30 |
1 |
if (dec->end - dec->cur >= 4 && memEQc(dec->cur, "true")) |
|
|
27 |
3 |
if (dec->end - dec->cur >= 4 && memEQc(dec->cur, "true")) |
|
4023
|
5 |
22 |
if (typesv) |
|
4025
|
4 |
23 |
if (dec->json.flags & F_UNBLESSED_BOOL) |
|
4035
|
23 |
1 |
if (dec->end - dec->cur >= 5 && memEQc(dec->cur, "false")) |
|
|
22 |
1 |
if (dec->end - dec->cur >= 5 && memEQc(dec->cur, "false")) |
|
4039
|
5 |
17 |
if (typesv) |
|
4041
|
4 |
18 |
if (dec->json.flags & F_UNBLESSED_BOOL) |
|
4051
|
58 |
1 |
if (dec->end - dec->cur >= 4 && memEQc(dec->cur, "null")) |
|
|
56 |
2 |
if (dec->end - dec->cur >= 4 && memEQc(dec->cur, "null")) |
|
4054
|
3 |
53 |
if (typesv) |
|
4096
|
0 |
8 |
PUSHMARK(SP); |
|
4097
|
0 |
8 |
XPUSHs(newSVpvn(encoding, strlen(encoding))); |
|
4098
|
0 |
8 |
XPUSHs(string); |
|
4109
|
8 |
0 |
if (items >= 0 && SvPOK(TOPs)) { |
|
|
8 |
0 |
if (items >= 0 && SvPOK(TOPs)) { |
|
4136
|
1331 |
111 |
if (SvMAGICAL (string) || !SvPOK (string) || SvIsCOW_shared_hash(string)) |
|
|
1326 |
5 |
if (SvMAGICAL (string) || !SvPOK (string) || SvIsCOW_shared_hash(string)) |
|
|
196 |
1130 |
if (SvMAGICAL (string) || !SvPOK (string) || SvIsCOW_shared_hash(string)) |
|
|
1 |
195 |
if (SvMAGICAL (string) || !SvPOK (string) || SvIsCOW_shared_hash(string)) |
|
4139
|
4 |
1438 |
SvUPGRADE (string, SVt_PV); |
|
4158
|
1436 |
6 |
if (UNLIKELY(len > json->max_size && json->max_size)) |
|
|
1 |
1435 |
if (UNLIKELY(len > json->max_size && json->max_size)) |
|
4171
|
1393 |
48 |
if (UNLIKELY(len > 2 && SvPOK(string) && !json->incr_pos)) { |
|
|
1393 |
0 |
if (UNLIKELY(len > 2 && SvPOK(string) && !json->incr_pos)) { |
|
|
1393 |
48 |
if (UNLIKELY(len > 2 && SvPOK(string) && !json->incr_pos)) { |
|
|
1124 |
269 |
if (UNLIKELY(len > 2 && SvPOK(string) && !json->incr_pos)) { |
|
4173
|
12 |
1112 |
if (*s >= 0xEF) { |
|
4174
|
12 |
0 |
if (len >= 3 && memEQc(s, UTF8BOM)) { |
|
|
5 |
7 |
if (len >= 3 && memEQc(s, UTF8BOM)) { |
|
4182
|
7 |
0 |
} else if (len >= 4 && memEQc(s, UTF32BOM)) { |
|
|
2 |
5 |
} else if (len >= 4 && memEQc(s, UTF32BOM)) { |
|
4186
|
2 |
3 |
} else if (memEQc(s, UTF16BOM)) { |
|
4190
|
2 |
1 |
} else if (memEQc(s, UTF16BOM_BE)) { |
|
4195
|
1069 |
43 |
} else if (UNLIKELY(len >= 4 && !*s && memEQc(s, UTF32BOM_BE))) { |
|
|
2 |
1067 |
} else if (UNLIKELY(len >= 4 && !*s && memEQc(s, UTF32BOM_BE))) { |
|
|
2 |
1110 |
} else if (UNLIKELY(len >= 4 && !*s && memEQc(s, UTF32BOM_BE))) { |
|
|
2 |
0 |
} else if (UNLIKELY(len >= 4 && !*s && memEQc(s, UTF32BOM_BE))) { |
|
4202
|
1428 |
13 |
if (LIKELY(!converted)) { |
|
4203
|
751 |
677 |
if (DECODE_WANTS_OCTETS (json)) |
|
4210
|
0 |
1440 |
if (!SvPOK(string)) |
|
4211
|
0 |
0 |
SvGROW (string, SvCUR (string) + 1); |
|
|
0 |
0 |
SvGROW (string, SvCUR (string) + 1); |
|
4219
|
1430 |
10 |
if (dec.json.cb_object || dec.json.cb_sk_object) |
|
|
4 |
1426 |
if (dec.json.cb_object || dec.json.cb_sk_object) |
|
4227
|
283 |
1157 |
if (offset_return) { |
|
4228
|
283 |
0 |
if (dec.cur < SvPVX (string) || dec.cur > SvEND (string)) |
|
|
0 |
283 |
if (dec.cur < SvPVX (string) || dec.cur > SvEND (string)) |
|
4234
|
1157 |
283 |
if (!(offset_return || !sv)) |
|
|
839 |
318 |
if (!(offset_return || !sv)) |
|
4239
|
818 |
21 |
if ((dec.end - dec.cur) || *dec.cur) |
|
|
0 |
818 |
if ((dec.end - dec.cur) || *dec.cur) |
|
4247
|
5 |
1435 |
if (UNLIKELY(offset)) { |
|
4252
|
343 |
1097 |
if (!sv) |
|
4267
|
306 |
37 |
croak ("%s, at character offset %d (before \"%s\")", |
|
4270
|
306 |
0 |
dec.cur != dec.end ? SvPV_nolen (uni) : "(end of string)"); |
|
4273
|
885 |
212 |
if (!(dec.json.flags & F_ALLOW_NONREF) && json_nonref(aTHX_ sv)) |
|
|
9 |
876 |
if (!(dec.json.flags & F_ALLOW_NONREF) && json_nonref(aTHX_ sv)) |
|
4276
|
12 |
1076 |
if (UNLIKELY(converted && !(converted - 1))) /* with BOM, and UTF8 was not set */ |
|
|
1 |
11 |
if (UNLIKELY(converted && !(converted - 1))) /* with BOM, and UTF8 was not set */ |
|
4301
|
278 |
278 |
if (*p > 0x20) |
|
4303
|
6 |
272 |
if (*p == '#') |
|
4314
|
42 |
236 |
else if (!*p) |
|
4322
|
0 |
0 |
if (!*p) |
|
4335
|
9 |
36 |
if (*p == '\n') |
|
4337
|
6 |
3 |
self->incr_mode = self->incr_mode == INCR_M_C0 ? INCR_M_WS : INCR_M_JSON; |
|
4340
|
0 |
36 |
else if (!*p) |
|
4353
|
583 |
1502 |
if (*p == '"') |
|
4358
|
15 |
568 |
if (!self->incr_nest) |
|
4363
|
498 |
1004 |
else if (*p == '\\') |
|
4367
|
0 |
498 |
if (!*p) /* if at end of string we have to switch modes */ |
|
4373
|
2 |
1002 |
else if (!*p) |
|
4394
|
0 |
682 |
if (!self->incr_nest) |
|
4408
|
1 |
357 |
if (++self->incr_nest > (int)self->max_depth) |
|
4414
|
256 |
99 |
if (--self->incr_nest <= 0) |
|
4506
|
0 |
216 |
XPUSHs (sv_2mortal (sv_bless ( |
|
|
216 |
0 |
XPUSHs (sv_2mortal (sv_bless ( |
|
4539
|
283 |
14 |
if (enable) |
|
4543
|
0 |
297 |
XPUSHs (ST (0)); |
|
4572
|
0 |
0 |
XPUSHs (boolSV (self->flags & ix)); |
|
|
0 |
0 |
XPUSHs (boolSV (self->flags & ix)); |
|
4576
|
1 |
0 |
if (0 <= val && val <= 15) { |
|
|
1 |
0 |
if (0 <= val && val <= 15) { |
|
4581
|
0 |
1 |
XPUSHs (ST (0)); |
|
4592
|
0 |
5 |
XPUSHs (ST (0)); |
|
4603
|
0 |
3 |
XPUSHs (ST (0)); |
|
4613
|
9 |
0 |
if (infnan_mode > 3 || infnan_mode < 0) { |
|
|
0 |
9 |
if (infnan_mode > 3 || infnan_mode < 0) { |
|
4617
|
0 |
9 |
XPUSHs (ST (0)); |
|
4629
|
0 |
3 |
self->cb_sort_by = SvOK (cb) ? newSVsv (cb) : 0; |
|
|
0 |
0 |
self->cb_sort_by = SvOK (cb) ? newSVsv (cb) : 0; |
|
|
0 |
0 |
self->cb_sort_by = SvOK (cb) ? newSVsv (cb) : 0; |
|
4630
|
3 |
0 |
if (self->cb_sort_by) |
|
4633
|
0 |
3 |
XPUSHs (ST (0)); |
|
4641
|
1 |
4 |
self->cb_object = SvOK (cb) ? newSVsv (cb) : 0; |
|
|
1 |
0 |
self->cb_object = SvOK (cb) ? newSVsv (cb) : 0; |
|
|
0 |
1 |
self->cb_object = SvOK (cb) ? newSVsv (cb) : 0; |
|
4643
|
0 |
5 |
XPUSHs (ST (0)); |
|
4649
|
3 |
3 |
if (!self->cb_sk_object) |
|
4652
|
1 |
5 |
if (SvOK (cb)) |
|
|
1 |
0 |
if (SvOK (cb)) |
|
|
0 |
1 |
if (SvOK (cb)) |
|
4658
|
0 |
1 |
if (!HvKEYS (self->cb_sk_object)) |
|
|
0 |
1 |
if (!HvKEYS (self->cb_sk_object)) |
|
4665
|
0 |
6 |
XPUSHs (ST (0)); |
|
4671
|
0 |
1111 |
XPUSHs (scalar); |
|
4676
|
0 |
646 |
XPUSHs (jsonstr); |
|
4684
|
0 |
10 |
EXTEND (SP, 2); |
|
4692
|
27 |
599 |
if (!self->incr_text) |
|
4696
|
27 |
599 |
if (!DECODE_WANTS_OCTETS (self) == !SvUTF8 (self->incr_text)) { |
|
4697
|
0 |
27 |
if (DECODE_WANTS_OCTETS (self)) |
|
4699
|
0 |
0 |
if (self->incr_pos) |
|
4709
|
0 |
27 |
if (self->incr_pos) |
|
4716
|
321 |
305 |
if (jsonstr) |
|
4719
|
319 |
2 |
if (SvUTF8 (jsonstr) != SvUTF8 (self->incr_text)) { |
|
4720
|
0 |
319 |
if (SvUTF8 (jsonstr)) |
|
4729
|
321 |
0 |
const char *str = SvPV (jsonstr, len); |
|
4732
|
147 |
174 |
if (SvLEN (self->incr_text) <= cur + len) |
|
4733
|
147 |
0 |
SvGROW (self->incr_text, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1); |
|
|
147 |
0 |
SvGROW (self->incr_text, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1); |
|
4741
|
626 |
0 |
if (GIMME_V != G_VOID) |
|
|
317 |
309 |
if (GIMME_V != G_VOID) |
|
4748
|
317 |
2 |
if (!INCR_DONE (self)) |
|
|
316 |
1 |
if (!INCR_DONE (self)) |
|
4752
|
278 |
39 |
if (UNLIKELY(self->incr_pos > self->max_size && self->max_size)) |
|
|
1 |
277 |
if (UNLIKELY(self->incr_pos > self->max_size && self->max_size)) |
|
4756
|
314 |
2 |
if (!INCR_DONE (self)) |
|
|
44 |
270 |
if (!INCR_DONE (self)) |
|
4759
|
42 |
4 |
if (self->incr_mode == INCR_M_WS && self->incr_pos) |
|
|
4 |
38 |
if (self->incr_mode == INCR_M_WS && self->incr_pos) |
|
4770
|
0 |
267 |
XPUSHs (sv); |
|
4782
|
267 |
0 |
while (GIMME_V == G_ARRAY); |
|
|
2 |
265 |
while (GIMME_V == G_ARRAY); |
|
4792
|
0 |
290 |
if (UNLIKELY(self->incr_pos)) |
|
4799
|
289 |
1 |
ST(0) = self->incr_text ? self->incr_text : &PL_sv_undef; |
|
4820
|
2 |
0 |
if (self->incr_pos) |
|
4822
|
2 |
0 |
sv_chop (self->incr_text, SvPV_nolen (self->incr_text) + self->incr_pos); |
|
4832
|
1 |
0 |
if (self->incr_text) |
|
4861
|
0 |
215 |
XPUSHs (scalar); |
|
4873
|
216 |
0 |
if (ix && allow_nonref) |
|
|
9 |
207 |
if (ix && allow_nonref) |
|
4876
|
0 |
165 |
XPUSHs (jsonstr); |