| line |
true |
false |
branch |
|
31
|
32 |
4 |
if (t->code == T_ARRAY || t->code == T_MAP) { |
|
|
4 |
28 |
if (t->code == T_ARRAY || t->code == T_MAP) { |
|
35
|
6 |
22 |
if (t->code == T_TUPLE) { |
|
38
|
11 |
6 |
for (i = 0; i < t->tuple_len; i++) { |
|
44
|
0 |
22 |
if (t->code == T_LOWCARDINALITY) |
|
46
|
0 |
22 |
if (t->code == T_VARIANT) |
|
49
|
15 |
7 |
if (t->code == T_STRING || t->code == T_FIXEDSTRING) |
|
|
0 |
15 |
if (t->code == T_STRING || t->code == T_FIXEDSTRING) |
|
51
|
15 |
0 |
if (t->code == T_UUID || t->code == T_IPV6) |
|
|
0 |
15 |
if (t->code == T_UUID || t->code == T_IPV6) |
|
53
|
15 |
0 |
if (t->code == T_FLOAT32 || t->code == T_FLOAT64 || t->code == T_BFLOAT16) |
|
|
15 |
0 |
if (t->code == T_FLOAT32 || t->code == T_FLOAT64 || t->code == T_BFLOAT16) |
|
|
0 |
15 |
if (t->code == T_FLOAT32 || t->code == T_FLOAT64 || t->code == T_BFLOAT16) |
|
61
|
2 |
2018 |
if (!psv) return 0; |
|
87
|
2 |
492499 |
if (!SvOK(val)) { |
|
98
|
0 |
22 |
if (!SvOK(val)) { |
|
104
|
15 |
7 |
if (len >= (STRLEN)t->param) { |
|
117
|
2027 |
0 |
if (!SvOK(val)) { |
|
119
|
2018 |
9 |
} else if (SvIOK(val) || SvNOK(val)) { |
|
|
0 |
2018 |
} else if (SvIOK(val) || SvNOK(val)) { |
|
121
|
8 |
1 |
if (iv < -128 || iv > 127) |
|
|
2 |
6 |
if (iv < -128 || iv > 127) |
|
127
|
2 |
2016 |
if (!enum_lookup_name(aTHX_ t, s, slen, &v)) |
|
135
|
6 |
0 |
if (!SvOK(val)) { |
|
137
|
2 |
4 |
} else if (SvIOK(val) || SvNOK(val)) { |
|
|
0 |
2 |
} else if (SvIOK(val) || SvNOK(val)) { |
|
139
|
4 |
0 |
if (iv < -32768 || iv > 32767) |
|
|
1 |
3 |
if (iv < -32768 || iv > 32767) |
|
145
|
0 |
2 |
if (!enum_lookup_name(aTHX_ t, s, slen, &v)) |
|
153
|
5 |
7 |
if (looks_stringy(val)) { |
|
156
|
0 |
5 |
if (!parse_decimal_int64_str(s, slen, t->param, &v64)) |
|
160
|
7 |
0 |
if (!(d >= (double)INT32_MIN && d <= (double)INT32_MAX)) |
|
|
0 |
7 |
if (!(d >= (double)INT32_MIN && d <= (double)INT32_MAX)) |
|
164
|
12 |
0 |
if (v64 < INT32_MIN || v64 > INT32_MAX) |
|
|
2 |
10 |
if (v64 < INT32_MIN || v64 > INT32_MAX) |
|
171
|
2008 |
7 |
if (looks_stringy(val)) { |
|
174
|
0 |
2008 |
if (!parse_decimal_int64_str(s, slen, t->param, &v)) |
|
181
|
7 |
0 |
if (!(d > -9.223372036854776e18 && d < 9.223372036854776e18)) |
|
|
3 |
4 |
if (!(d > -9.223372036854776e18 && d < 9.223372036854776e18)) |
|
190
|
13 |
3 |
if (looks_stringy(val)) { |
|
193
|
2 |
11 |
if (!parse_decimal256_str(s, slen, t->param, limbs)) |
|
198
|
0 |
3 |
if (!isfinite(d)) |
|
201
|
0 |
3 |
if (neg) d = -d; |
|
209
|
3 |
0 |
if (d >= two255) |
|
212
|
0 |
0 |
for (j = 0; j < 4 && d > 0; j++) { |
|
|
0 |
0 |
for (j = 0; j < 4 && d > 0; j++) { |
|
216
|
0 |
0 |
if (neg) { |
|
217
|
0 |
0 |
for (j = 0; j < 4; j++) limbs[j] = ~limbs[j]; |
|
229
|
20 |
3 |
if (looks_stringy(val)) { |
|
232
|
4 |
16 |
if (!parse_decimal128_str(s, slen, t->param, &hi, &lo)) |
|
236
|
0 |
3 |
if (!isfinite(d)) |
|
239
|
1 |
2 |
if (neg) d = -d; |
|
243
|
1 |
2 |
if (d >= two127) |
|
247
|
1 |
1 |
if (neg) { |
|
249
|
0 |
1 |
hi = ~hi + (lo == 0 ? 1 : 0); |
|
258
|
0 |
29 |
if (!SvOK(val)) v = 0; |
|
259
|
21 |
8 |
else if (SvIOK(val) || SvNOK(val)) v = (uint16_t)SvUV(val); |
|
|
0 |
21 |
else if (SvIOK(val) || SvNOK(val)) v = (uint16_t)SvUV(val); |
|
263
|
1 |
20 |
if (looks_like_int_str(s, slen)) v = (uint16_t)SvUV(val); |
|
271
|
0 |
7 |
if (!SvOK(val)) v = 0; |
|
272
|
6 |
1 |
else if (SvIOK(val) || SvNOK(val)) v = (int32_t)SvIV(val); |
|
|
0 |
6 |
else if (SvIOK(val) || SvNOK(val)) v = (int32_t)SvIV(val); |
|
276
|
0 |
6 |
if (looks_like_int_str(s, slen)) v = (int32_t)SvIV(val); |
|
284
|
0 |
51085 |
if (!SvOK(val)) v = 0; |
|
285
|
15 |
51070 |
else if (SvIOK(val) || SvNOK(val)) v = (uint32_t)SvUV(val); |
|
|
0 |
15 |
else if (SvIOK(val) || SvNOK(val)) v = (uint32_t)SvUV(val); |
|
289
|
1 |
14 |
if (looks_like_int_str(s, slen)) v = (uint32_t)SvUV(val); |
|
297
|
0 |
20 |
if (!SvOK(val)) v = 0; |
|
298
|
3 |
17 |
else if (SvIOK(val)) v = (int64_t)SvIV(val); |
|
299
|
4 |
13 |
else if (SvNOK(val)) v = dt64_double_to_int64(aTHX_ SvNV(val), t->param); |
|
303
|
2 |
11 |
if (looks_like_int_str(s, slen)) |
|
305
|
3 |
8 |
else if (looks_like_number_str(s, slen)) |
|
314
|
10018 |
1 |
uint8_t v = SvOK(val) && SvTRUE(val) ? 1 : 0; |
|
|
5009 |
5009 |
uint8_t v = SvOK(val) && SvTRUE(val) ? 1 : 0; |
|
323
|
0 |
12 |
if (!SvOK(val)) { |
|
328
|
1 |
11 |
if (slen == 16) { |
|
330
|
10 |
1 |
} else if (slen == 36) { |
|
333
|
10 |
0 |
if (s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-') |
|
|
10 |
0 |
if (s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-') |
|
|
10 |
0 |
if (s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-') |
|
|
0 |
10 |
if (s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-') |
|
335
|
325 |
9 |
for (i = 0; i < 36; i++) { |
|
336
|
316 |
9 |
if (i == 8 || i == 13 || i == 18 || i == 23) continue; |
|
|
307 |
9 |
if (i == 8 || i == 13 || i == 18 || i == 23) continue; |
|
|
298 |
9 |
if (i == 8 || i == 13 || i == 18 || i == 23) continue; |
|
|
9 |
289 |
if (i == 8 || i == 13 || i == 18 || i == 23) continue; |
|
338
|
268 |
21 |
int nyb = (c >= '0' && c <= '9') ? c - '0' |
|
339
|
289 |
0 |
: (c >= 'a' && c <= 'f') ? c - 'a' + 10 |
|
|
20 |
0 |
: (c >= 'a' && c <= 'f') ? c - 'a' + 10 |
|
340
|
20 |
1 |
: (c >= 'A' && c <= 'F') ? c - 'A' + 10 |
|
|
0 |
1 |
: (c >= 'A' && c <= 'F') ? c - 'A' + 10 |
|
341
|
1 |
0 |
: -1; |
|
342
|
1 |
288 |
if (nyb < 0) |
|
344
|
144 |
144 |
if ((j & 1) == 0) buf16[j >> 1] = nyb << 4; |
|
356
|
80 |
10 |
for (i = 0; i < 8; i++) out[i] = buf16[7 - i]; |
|
357
|
80 |
10 |
for (i = 0; i < 8; i++) out[8+i] = buf16[15 - i]; |
|
363
|
0 |
14 |
if (!SvOK(val)) v = 0; |
|
364
|
14 |
0 |
else if (SvIOK(val) || SvNOK(val)) v = (uint32_t)SvUV(val); |
|
|
0 |
14 |
else if (SvIOK(val) || SvNOK(val)) v = (uint32_t)SvUV(val); |
|
368
|
0 |
14 |
if (looks_like_int_str(s, slen)) { |
|
372
|
0 |
14 |
if (slen >= sizeof(tmp)) |
|
377
|
2 |
12 |
if (inet_pton(AF_INET, tmp, &addr) != 1) |
|
391
|
0 |
8 |
if (!SvOK(val)) { |
|
396
|
1 |
7 |
if (slen == 16) { |
|
400
|
0 |
7 |
if (slen >= sizeof(tmp)) |
|
404
|
1 |
6 |
if (inet_pton(AF_INET6, tmp, out) != 1) |
|
447
|
1234 |
5 |
return t->code != T_ARRAY && t->code != T_TUPLE && t->code != T_NULLABLE |
|
|
1234 |
0 |
return t->code != T_ARRAY && t->code != T_TUPLE && t->code != T_NULLABLE |
|
448
|
1233 |
1 |
&& t->code != T_MAP && t->code != T_LOWCARDINALITY |
|
|
1233 |
0 |
&& t->code != T_MAP && t->code != T_LOWCARDINALITY |
|
449
|
1233 |
0 |
&& t->code != T_VARIANT && t->code != T_JSON |
|
|
1233 |
0 |
&& t->code != T_VARIANT && t->code != T_JSON |
|
450
|
1239 |
2 |
&& t->code != T_DYNAMIC; |
|
|
1233 |
0 |
&& t->code != T_DYNAMIC; |
|
455
|
13 |
4580 |
if (n <= 0) return NULL; |
|
475
|
8033 |
3408 |
for (i = 0; i < n; i++) { |
|
477
|
8033 |
0 |
if (!e || !SvOK(*e)) continue; |
|
|
0 |
8033 |
if (!e || !SvOK(*e)) continue; |
|
478
|
620 |
7413 |
if (SvROK(*e)) { |
|
481
|
620 |
0 |
if (json_is_bool_ref(aTHX_ *e)) { |
|
482
|
234 |
386 |
if (seen_kind == -1) seen_kind = JV_BOOL; |
|
483
|
0 |
386 |
else if (seen_kind != JV_BOOL) return -1; |
|
490
|
0 |
7413 |
if (SvIsBOOL(*e)) leaf = JV_BOOL; |
|
493
|
2314 |
5099 |
if (SvIOK(*e) && !SvNOK(*e)) leaf = JV_INT64; |
|
|
2314 |
0 |
if (SvIOK(*e) && !SvNOK(*e)) leaf = JV_INT64; |
|
494
|
1752 |
3347 |
else if (SvNOK(*e)) { |
|
497
|
0 |
0 |
&& nv >= (NV)INT64_MIN && nv <= (NV)INT64_MAX) |
|
|
0 |
0 |
&& nv >= (NV)INT64_MIN && nv <= (NV)INT64_MAX) |
|
498
|
0 |
1752 |
? JV_INT64 : JV_FLOAT64; |
|
502
|
2949 |
4464 |
if (seen_kind == -1) seen_kind = leaf; |
|
503
|
1 |
4463 |
else if (seen_kind != leaf) return -1; |
|
511
|
226 |
3182 |
if (seen_kind == -1) return JV_ARRAY_INT64; |
|
522
|
2219 |
0 |
return pkg && (strcmp(pkg, "JSON::PP::Boolean") == 0 |
|
|
15 |
2204 |
return pkg && (strcmp(pkg, "JSON::PP::Boolean") == 0 |
|
523
|
15 |
0 |
|| strcmp(pkg, "Types::Serialiser::Boolean") == 0 |
|
524
|
8 |
7 |
|| strcmp(pkg, "JSON::XS::Boolean") == 0 |
|
525
|
1 |
7 |
|| strcmp(pkg, "Cpanel::JSON::XS::Boolean") == 0 |
|
526
|
0 |
1 |
|| strcmp(pkg, "boolean") == 0); |
|
531
|
6924 |
5499 |
if (!(SvROK(val) && sv_isobject(val))) return 0; |
|
|
4705 |
2219 |
if (!(SvROK(val) && sv_isobject(val))) return 0; |
|
533
|
2219 |
0 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
|
2219 |
0 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
|
2219 |
0 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
|
0 |
2219 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
|
0 |
0 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
|
2219 |
0 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
|
0 |
2219 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
|
2218 |
1 |
return stash && json_pkg_is_bool(HvNAME(stash)); |
|
539
|
685 |
5499 |
if (json_is_bool_ref(aTHX_ val)) return JV_BOOL; |
|
541
|
6 |
5493 |
if (SvIsBOOL(val)) return JV_BOOL; |
|
543
|
2355 |
3138 |
if (SvIOK(val) && !SvNOK(val)) return JV_INT64; |
|
|
2355 |
0 |
if (SvIOK(val) && !SvNOK(val)) return JV_INT64; |
|
544
|
907 |
2231 |
if (SvNOK(val)) { |
|
552
|
0 |
907 |
if (n == (NV)(int64_t)n |
|
553
|
0 |
0 |
&& n >= (NV)INT64_MIN && n <= (NV)INT64_MAX) |
|
|
0 |
0 |
&& n >= (NV)INT64_MIN && n <= (NV)INT64_MAX) |
|
566
|
4094 |
5499 |
if (SvROK(val) && !json_is_bool_ref(aTHX_ val)) |
|
|
3409 |
685 |
if (SvROK(val) && !json_is_bool_ref(aTHX_ val)) |
|
579
|
0 |
153 |
if (!SvOK(ev)) { buf_byte(aTHX_ b, 0); break; } |
|
580
|
153 |
0 |
SV *bv = SvROK(ev) ? SvRV(ev) : ev; |
|
585
|
579 |
0 |
buf_le64(aTHX_ b, SvOK(ev) ? (uint64_t)(int64_t)SvIV(ev) : 0); |
|
588
|
436 |
0 |
buf_ledouble(aTHX_ b, SvOK(ev) ? SvNV(ev) : 0.0); |
|
591
|
0 |
836 |
if (!SvOK(ev)) { buf_varint(aTHX_ b, 0); break; } |
|
605
|
228 |
2 |
SV *bv = SvROK(val) ? SvRV(val) : val; |
|
639
|
3307 |
2009 |
while ((he = hv_iternext(src))) { |
|
644
|
791 |
2516 |
STRLEN new_len = prefix_len + (prefix_len ? 1 : 0) + klen; |
|
648
|
791 |
2516 |
if (prefix_len) { |
|
658
|
34 |
3273 |
&& hv_exists(stop_paths, SvPVX(path_sv), new_len); |
|
|
4 |
30 |
&& hv_exists(stop_paths, SvPVX(path_sv), new_len); |
|
660
|
3303 |
4 |
if (!stop_here |
|
661
|
1522 |
1781 |
&& SvROK(vsv) && SvTYPE(SvRV(vsv)) == SVt_PVHV |
|
|
444 |
1078 |
&& SvROK(vsv) && SvTYPE(SvRV(vsv)) == SVt_PVHV |
|
662
|
444 |
0 |
&& !json_is_bool_ref(aTHX_ vsv)) { |
|
666
|
1 |
443 |
if (sv_isobject(vsv)) |
|
667
|
1 |
0 |
croak("JSON column: opaque blessed hashref (package '%s') " |
|
|
1 |
0 |
croak("JSON column: opaque blessed hashref (package '%s') " |
|
|
0 |
1 |
croak("JSON column: opaque blessed hashref (package '%s') " |
|
|
0 |
0 |
croak("JSON column: opaque blessed hashref (package '%s') " |
|
|
1 |
0 |
croak("JSON column: opaque blessed hashref (package '%s') " |
|
|
0 |
1 |
croak("JSON column: opaque blessed hashref (package '%s') " |
|
692
|
5419 |
46 |
if (r) return r; |
|
693
|
21 |
25 |
if (pa->len < pb->len) return -1; |
|
694
|
25 |
0 |
if (pa->len > pb->len) return 1; |
|
710
|
870989 |
5274 |
for (r = 0; r < num_rows; r++) encode_scalar(aTHX_ b,values[r], t); |
|
717
|
93206 |
1313 |
for (r = 0; r < num_rows; r++) { |
|
719
|
93205 |
1 |
if (!SvROK(val) || SvTYPE(SvRV(val)) != SVt_PVAV) |
|
|
0 |
93205 |
if (!SvROK(val) || SvTYPE(SvRV(val)) != SVt_PVAV) |
|
728
|
1311 |
2 |
if (total_elems > 0) { |
|
731
|
93203 |
1311 |
for (r = 0; r < num_rows; r++) { |
|
735
|
275259 |
93203 |
for (i = 0; i < n; i++) { |
|
737
|
275259 |
0 |
all_elems[idx++] = elem ? *elem : &PL_sv_undef; |
|
749
|
2066 |
1032 |
for (i = 0; i < t->tuple_len; i++) { |
|
750
|
4147 |
2064 |
for (r = 0; r < num_rows; r++) { |
|
752
|
1 |
4146 |
if (!SvROK(val)) |
|
755
|
4139 |
7 |
if (SvTYPE(rv) == SVt_PVAV) { |
|
757
|
4139 |
0 |
elem_values[r] = elem ? *elem : &PL_sv_undef; |
|
758
|
7 |
0 |
} else if (SvTYPE(rv) == SVt_PVHV |
|
759
|
6 |
1 |
&& t->tuple_names && t->tuple_names[i]) { |
|
|
6 |
0 |
&& t->tuple_names && t->tuple_names[i]) { |
|
763
|
5 |
1 |
elem_values[r] = elem ? *elem : &PL_sv_undef; |
|
764
|
1 |
0 |
} else if (SvTYPE(rv) == SVt_PVHV) { |
|
777
|
43089 |
1241 |
for (r = 0; r < num_rows; r++) { |
|
781
|
1233 |
8 |
if (is_simple_type(t->inner)) { |
|
782
|
43067 |
1233 |
for (r = 0; r < num_rows; r++) { |
|
783
|
9228 |
33839 |
if (!SvOK(values[r])) encode_null_scalar(aTHX_ b, t->inner); |
|
788
|
22 |
8 |
for (r = 0; r < num_rows; r++) { |
|
789
|
9 |
13 |
if (!SvOK(values[r])) |
|
804
|
17 |
8 |
for (r = 0; r < num_rows; r++) { |
|
806
|
1 |
16 |
if (!SvROK(val)) |
|
809
|
7 |
9 |
if (SvTYPE(rv) == SVt_PVAV) { |
|
811
|
9 |
0 |
} else if (SvTYPE(rv) == SVt_PVHV) { |
|
816
|
13 |
9 |
while ((he = hv_iternext(hv))) { |
|
834
|
16 |
8 |
for (r = 0; r < num_rows; r++) { |
|
841
|
8 |
0 |
if (total > 0) { |
|
844
|
16 |
8 |
for (r = 0; r < num_rows; r++) { |
|
848
|
17 |
16 |
for (i = 0; i < n; i++) { |
|
850
|
17 |
0 |
all[idx++] = elem ? *elem : &PL_sv_undef; |
|
855
|
16 |
8 |
for (j = 0; j < 2; j++) { |
|
858
|
34 |
16 |
for (k = 0; k < total; k++) { |
|
859
|
34 |
0 |
if (!SvROK(all[k]) || SvTYPE(SvRV(all[k])) != SVt_PVAV) |
|
|
0 |
34 |
if (!SvROK(all[k]) || SvTYPE(SvRV(all[k])) != SVt_PVAV) |
|
863
|
34 |
0 |
col[k] = e ? *e : &PL_sv_undef; |
|
895
|
34 |
16 |
for (v = 0; v < nvar; v++) |
|
898
|
32 |
11 |
for (r = 0; r < num_rows; r++) { |
|
900
|
12 |
20 |
if (!SvOK(val)) { |
|
904
|
18 |
2 |
if (!SvROK(val) || SvTYPE(SvRV(val)) != SVt_PVAV) |
|
|
0 |
18 |
if (!SvROK(val) || SvTYPE(SvRV(val)) != SVt_PVAV) |
|
907
|
1 |
17 |
if (av_len(av) + 1 != 2) |
|
911
|
17 |
0 |
IV idx = idx_sv ? SvIV(*idx_sv) : -1; |
|
912
|
17 |
0 |
if (idx < 0 || idx >= nvar) |
|
|
2 |
15 |
if (idx < 0 || idx >= nvar) |
|
916
|
15 |
0 |
per_var[idx][counts[idx]++] = vsv ? *vsv : &PL_sv_undef; |
|
920
|
24 |
11 |
for (v = 0; v < nvar; v++) { |
|
944
|
7 |
14 |
TypeInfo *leaf = is_null ? inner->inner : inner; |
|
952
|
1 |
20 |
int fixed_n = (leaf->code == T_FIXEDSTRING) ? leaf->param : 0; |
|
954
|
1 |
20 |
if (fixed_n > 0) { |
|
964
|
14 |
7 |
if (!is_null) { |
|
965
|
1 |
13 |
if (fixed_n > 0) { |
|
981
|
67402 |
21 |
for (r = 0; r < num_rows; r++) { |
|
983
|
12 |
67390 |
if (!SvOK(val)) { |
|
988
|
9 |
3 |
if (is_null) { indices[r] = 0; continue; } |
|
995
|
6 |
67387 |
if (fixed_n > 0) { |
|
998
|
5 |
1 |
if (slen >= (STRLEN)fixed_n) { |
|
1011
|
721 |
66672 |
if (slot_sv) { |
|
1024
|
17 |
4 |
if (dict_count <= 256) { idx_type = 0; idx_bytes = 1; } |
|
1025
|
4 |
0 |
else if (dict_count <= 65536) { idx_type = 1; idx_bytes = 2; } |
|
1026
|
0 |
0 |
else if (dict_count <= 0xFFFFFFFF) { idx_type = 2; idx_bytes = 4; } |
|
1038
|
66693 |
21 |
for (di = 0; di < (SSize_t)dict_count; di++) { |
|
1040
|
66693 |
0 |
dict_vals[di] = e ? *e : &PL_sv_undef; |
|
1046
|
67402 |
21 |
for (r = 0; r < num_rows; r++) { |
|
1082
|
15 |
196 |
if (t->tuple_len > 0) { |
|
1085
|
20 |
15 |
for (sk = 0; sk < t->tuple_len; sk++) { |
|
1090
|
2 |
18 |
if (inner->code == T_NULLABLE) inner = inner->inner; |
|
1091
|
17 |
3 |
if (inner->code == T_MAP || inner->code == T_TUPLE) { |
|
|
0 |
17 |
if (inner->code == T_MAP || inner->code == T_TUPLE) { |
|
1100
|
209 |
2 |
if (num_rows > 0) { |
|
1101
|
0 |
209 |
Newxz(row_hvs, num_rows, HV*); |
|
1106
|
1709 |
209 |
for (r = 0; r < num_rows; r++) { |
|
1108
|
141 |
1568 |
if (!SvOK(val)) { row_hvs[r] = NULL; continue; } |
|
1109
|
1567 |
1 |
if (!SvROK(val) || SvTYPE(SvRV(val)) != SVt_PVHV) |
|
|
0 |
1567 |
if (!SvROK(val) || SvTYPE(SvRV(val)) != SVt_PVHV) |
|
1127
|
15 |
194 |
if (n_typed > 0 && num_rows > 0) { |
|
|
14 |
1 |
if (n_typed > 0 && num_rows > 0) { |
|
1131
|
18 |
14 |
for (tp = 0; tp < n_typed; tp++) { |
|
1136
|
16 |
2 |
: make_null_placeholder(aTHX_ t->tuple[tp]); |
|
1137
|
36 |
18 |
for (r = 0; r < num_rows; r++) { |
|
1138
|
0 |
36 |
if (!row_hvs[r]) { |
|
1144
|
30 |
6 |
if (e) { |
|
1145
|
27 |
3 |
typed_vals[tp][r] = SvOK(*e) ? *e : missing; |
|
1160
|
1707 |
209 |
for (r = 0; r < num_rows; r++) { |
|
1161
|
141 |
1566 |
if (!row_hvs[r]) continue; |
|
1164
|
2833 |
1566 |
while ((he = hv_iternext(row_hvs[r]))) { |
|
1168
|
2833 |
0 |
if (e && SvOK(*e)) |
|
|
2622 |
211 |
if (e && SvOK(*e)) |
|
1181
|
0 |
209 |
int total = (int)HvUSEDKEYS(all_paths); |
|
1182
|
194 |
15 |
if (total > 0) { |
|
1192
|
2043 |
194 |
while ((he = hv_iternext(all_paths))) { |
|
1199
|
171 |
23 |
if (num_paths > 1) |
|
1202
|
2043 |
194 |
for (pi = 0; pi < num_paths; pi++) { |
|
1214
|
194 |
15 |
if (num_paths > 0) { |
|
1218
|
2043 |
193 |
for (p = 0; p < num_paths; p++) { |
|
1219
|
21540 |
2042 |
for (r = 0; r < num_rows; r++) { |
|
1220
|
1401 |
20139 |
if (!row_hvs[r]) continue; |
|
1223
|
2626 |
17513 |
if (!e || !SvOK(*e)) continue; |
|
|
4 |
2622 |
if (!e || !SvOK(*e)) continue; |
|
1224
|
1076 |
1546 |
if (SvROK(*e) && !json_is_bool_ref(aTHX_ *e) |
|
|
849 |
227 |
if (SvROK(*e) && !json_is_bool_ref(aTHX_ *e) |
|
1225
|
0 |
849 |
&& SvTYPE(SvRV(*e)) != SVt_PVAV) |
|
1234
|
1 |
2621 |
if (k < 0) |
|
1250
|
2042 |
208 |
for (p = 0; p < num_paths; p++) |
|
1259
|
193 |
15 |
if (num_paths > 0) { |
|
1264
|
2042 |
193 |
for (p = 0; p < num_paths; p++) |
|
1270
|
2042 |
208 |
for (p = 0; p < num_paths; p++) { |
|
1281
|
4372 |
2042 |
for (s = 0; s < wire_slots; s++) { |
|
1283
|
2042 |
2330 |
if (k < 0) continue; |
|
1296
|
15 |
193 |
if (n_typed > 0 && num_rows > 0) { |
|
|
14 |
1 |
if (n_typed > 0 && num_rows > 0) { |
|
1298
|
18 |
14 |
for (tp = 0; tp < n_typed; tp++) |
|
1308
|
2042 |
208 |
for (p = 0; p < num_paths; p++) { |
|
1313
|
21539 |
2042 |
for (r = 0; r < num_rows; r++) { |
|
1314
|
1401 |
20138 |
if (!row_hvs[r]) { buf_byte(aTHX_ b, 0xff); continue; } |
|
1317
|
2625 |
17513 |
if (!e || !SvOK(*e)) { buf_byte(aTHX_ b, 0xff); continue; } |
|
|
4 |
2621 |
if (!e || !SvOK(*e)) { buf_byte(aTHX_ b, 0xff); continue; } |
|
1326
|
4372 |
2042 |
for (s = 0; s < wire_slots; s++) { |
|
1328
|
2042 |
2330 |
if (k_match < 0) continue; |
|
1334
|
2330 |
0 |
&& k_match <= JV_ARRAY_STRING); |
|
|
847 |
1483 |
&& k_match <= JV_ARRAY_STRING); |
|
1335
|
847 |
1483 |
if (is_array) { |
|
1337
|
9133 |
847 |
for (r = 0; r < num_rows; r++) { |
|
1338
|
560 |
8573 |
if (!row_hvs[r]) continue; |
|
1341
|
857 |
7716 |
if (!e || !SvOK(*e)) continue; |
|
|
2 |
855 |
if (!e || !SvOK(*e)) continue; |
|
1342
|
7 |
848 |
if (json_classify_value(aTHX_ *e) != k_match) |
|
1352
|
24404 |
2330 |
for (r = 0; r < num_rows; r++) { |
|
1353
|
1681 |
22723 |
if (!row_hvs[r]) continue; |
|
1356
|
3488 |
19235 |
if (!e || !SvOK(*e)) continue; |
|
|
5 |
3483 |
if (!e || !SvOK(*e)) continue; |
|
1357
|
862 |
2621 |
if (json_classify_value(aTHX_ *e) != k_match) continue; |
|
1359
|
848 |
1773 |
if (is_array) { |
|
1362
|
1997 |
848 |
for (i = 0; i < n; i++) { |
|
1364
|
1997 |
0 |
SV *ev = (elem && SvOK(*elem)) |
|
1365
|
1997 |
0 |
? *elem : &PL_sv_undef; |
|
1377
|
206 |
2 |
if (num_rows > 0) { |
|
1393
|
6 |
0 |
if (num_rows > 0) { |
|
1394
|
0 |
6 |
Newx(row_kinds, num_rows, int); |
|
1397
|
18 |
5 |
for (r = 0; r < num_rows; r++) { |
|
1399
|
5 |
13 |
if (!SvOK(val)) { row_kinds[r] = -1; continue; } |
|
1400
|
5 |
8 |
if (SvROK(val) && !json_is_bool_ref(aTHX_ val) |
|
|
4 |
1 |
if (SvROK(val) && !json_is_bool_ref(aTHX_ val) |
|
1401
|
1 |
3 |
&& SvTYPE(SvRV(val)) != SVt_PVAV) |
|
1406
|
0 |
12 |
if (k < 0) |
|
1421
|
17 |
5 |
for (s = 0; s < wire_slots; s++) { |
|
1423
|
5 |
12 |
if (k < 0) continue; |
|
1430
|
17 |
5 |
for (r = 0; r < num_rows; r++) { |
|
1431
|
5 |
12 |
if (row_kinds[r] < 0) { buf_byte(aTHX_ b, 0xff); continue; } |
|
1438
|
17 |
5 |
for (s = 0; s < wire_slots; s++) { |
|
1440
|
5 |
12 |
if (k_match < 0) continue; |
|
1442
|
12 |
0 |
&& k_match <= JV_ARRAY_STRING); |
|
|
3 |
9 |
&& k_match <= JV_ARRAY_STRING); |
|
1444
|
3 |
9 |
if (is_array) { |
|
1446
|
9 |
3 |
for (r = 0; r < num_rows; r++) { |
|
1447
|
6 |
3 |
if (row_kinds[r] != k_match) continue; |
|
1452
|
9 |
3 |
for (r = 0; r < num_rows; r++) { |
|
1453
|
6 |
3 |
if (row_kinds[r] != k_match) continue; |
|
1456
|
7 |
3 |
for (i = 0; i < n; i++) { |
|
1458
|
7 |
0 |
SV *ev = (elem && SvOK(*elem)) |
|
1459
|
7 |
0 |
? *elem : &PL_sv_undef; |
|
1464
|
35 |
9 |
for (r = 0; r < num_rows; r++) { |
|
1465
|
26 |
9 |
if (row_kinds[r] != k_match) continue; |