| line |
true |
false |
branch |
|
85
|
0 |
0 |
if (NULL == module) { |
|
95
|
0 |
0 |
PUSHMARK(SP); |
|
96
|
0 |
0 |
XPUSHs(thing); |
|
104
|
0 |
0 |
FREETMPS; |
|
114
|
0 |
6918 |
if (! no_v) |
|
117
|
6918 |
0 |
return SvTRUE(no_v); |
|
|
0 |
6918 |
return SvTRUE(no_v); |
|
|
0 |
0 |
return SvTRUE(no_v); |
|
|
6684 |
234 |
return SvTRUE(no_v); |
|
|
6684 |
0 |
return SvTRUE(no_v); |
|
|
0 |
6684 |
return SvTRUE(no_v); |
|
|
233 |
1 |
return SvTRUE(no_v); |
|
|
233 |
0 |
return SvTRUE(no_v); |
|
|
233 |
0 |
return SvTRUE(no_v); |
|
|
233 |
0 |
return SvTRUE(no_v); |
|
|
0 |
233 |
return SvTRUE(no_v); |
|
|
233 |
0 |
return SvTRUE(no_v); |
|
|
1 |
0 |
return SvTRUE(no_v); |
|
|
1 |
0 |
return SvTRUE(no_v); |
|
|
0 |
1 |
return SvTRUE(no_v); |
|
|
0 |
0 |
return SvTRUE(no_v); |
|
|
0 |
0 |
return SvTRUE(no_v); |
|
|
1 |
0 |
return SvTRUE(no_v); |
|
|
0 |
0 |
return SvTRUE(no_v); |
|
128
|
12 |
44 |
if (mask & SCALAR) { |
|
132
|
16 |
40 |
if (mask & ARRAYREF) { |
|
133
|
0 |
16 |
sv_catpv(buffer, empty ? "arrayref" : " arrayref"); |
|
136
|
6 |
50 |
if (mask & HASHREF) { |
|
137
|
2 |
4 |
sv_catpv(buffer, empty ? "hashref" : " hashref"); |
|
140
|
2 |
54 |
if (mask & CODEREF) { |
|
141
|
0 |
2 |
sv_catpv(buffer, empty ? "coderef" : " coderef"); |
|
144
|
6 |
50 |
if (mask & GLOB) { |
|
145
|
0 |
6 |
sv_catpv(buffer, empty ? "glob" : " glob"); |
|
148
|
8 |
48 |
if (mask & GLOBREF) { |
|
149
|
2 |
6 |
sv_catpv(buffer, empty ? "globref" : " globref"); |
|
152
|
2 |
54 |
if (mask & SCALARREF) { |
|
153
|
0 |
2 |
sv_catpv(buffer, empty ? "scalarref" : " scalarref"); |
|
156
|
2 |
54 |
if (mask & UNDEF) { |
|
157
|
0 |
2 |
sv_catpv(buffer, empty ? "undef" : " undef"); |
|
160
|
6 |
50 |
if (mask & OBJECT) { |
|
161
|
0 |
6 |
sv_catpv(buffer, empty ? "object" : " object"); |
|
164
|
0 |
56 |
if (mask & UNKNOWN) { |
|
165
|
0 |
0 |
sv_catpv(buffer, empty ? "unknown" : " unknown"); |
|
177
|
2115 |
11 |
if (SvTYPE(sv) == SVt_PVGV) { |
|
180
|
6 |
2109 |
if (!SvOK(sv)) { |
|
|
6 |
0 |
if (!SvOK(sv)) { |
|
|
0 |
6 |
if (!SvOK(sv)) { |
|
183
|
56 |
2053 |
if (!SvROK(sv)) { |
|
187
|
0 |
56 |
switch (SvTYPE(SvRV(sv))) { |
|
225
|
56 |
0 |
if (type) { |
|
226
|
7 |
49 |
if (sv_isobject(sv)) return type | OBJECT; |
|
240
|
50 |
12 |
rawstr = SvPV(string, len); |
|
241
|
62 |
0 |
if (len) { |
|
242
|
28 |
34 |
switch(rawstr[0]) { |
|
|
16 |
12 |
switch(rawstr[0]) { |
|
257
|
7 |
80 |
if(SvOK(value)) { |
|
|
7 |
0 |
if(SvOK(value)) { |
|
|
0 |
7 |
if(SvOK(value)) { |
|
258
|
16 |
64 |
return (void *)form("\"%s\"", SvPV_nolen(value)); |
|
272
|
13 |
142 |
if ((temp = hv_fetch(options, "on_fail", 7, 0))) { |
|
273
|
0 |
13 |
SvGETMAGIC(*temp); |
|
284
|
0 |
155 |
PUSHMARK(SP); |
|
285
|
0 |
155 |
mXPUSHs(message); |
|
289
|
13 |
142 |
if (on_fail) { |
|
301
|
0 |
0 |
FREETMPS; |
|
313
|
1 |
147 |
if ((temp = hv_fetch(options, "called", 6, 0))) { |
|
314
|
0 |
1 |
SvGETMAGIC(*temp); |
|
328
|
13 |
134 |
if ((temp = hv_fetch(options, "stack_skip", 10, 0))) { |
|
329
|
0 |
13 |
SvGETMAGIC(*temp); |
|
330
|
13 |
0 |
frame = SvIV(*temp); |
|
337
|
147 |
0 |
if (frame > 0) { |
|
343
|
147 |
0 |
if (cx) { |
|
351
|
110 |
0 |
if (cvgv && isGV(cvgv)) { |
|
|
110 |
0 |
if (cvgv && isGV(cvgv)) { |
|
386
|
44 |
0 |
if (! value) { |
|
390
|
0 |
44 |
SvGETMAGIC(value); |
|
391
|
2 |
42 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
2 |
0 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
0 |
2 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
8 |
34 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
6 |
2 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
6 |
0 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
400
|
0 |
40 |
PUSHMARK(SP); |
|
401
|
0 |
40 |
EXTEND(SP, 2); |
|
408
|
0 |
40 |
if (! count) |
|
414
|
0 |
40 |
SvGETMAGIC(ret); |
|
416
|
40 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
40 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
40 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
37 |
3 |
ok = SvTRUE(ret); |
|
|
37 |
0 |
ok = SvTRUE(ret); |
|
|
37 |
0 |
ok = SvTRUE(ret); |
|
|
23 |
14 |
ok = SvTRUE(ret); |
|
|
0 |
23 |
ok = SvTRUE(ret); |
|
|
23 |
14 |
ok = SvTRUE(ret); |
|
|
3 |
0 |
ok = SvTRUE(ret); |
|
|
3 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
3 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
3 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
419
|
40 |
0 |
FREETMPS; |
|
426
|
18 |
26 |
if (! ok) { |
|
437
|
2 |
16 |
if ( SvOK(value) ) { |
|
|
2 |
0 |
if ( SvOK(value) ) { |
|
|
0 |
2 |
if ( SvOK(value) ) { |
|
456
|
40 |
0 |
if (! value) { |
|
460
|
0 |
40 |
SvGETMAGIC(value); |
|
461
|
2 |
38 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
2 |
0 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
0 |
2 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
7 |
31 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
5 |
2 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
|
5 |
0 |
if (SvOK(value) && (sv_isobject(value) || (SvPOK(value) && ! looks_like_number(value)))) { |
|
470
|
0 |
36 |
PUSHMARK(SP); |
|
471
|
0 |
36 |
EXTEND(SP, 2); |
|
478
|
0 |
36 |
if (! count) |
|
484
|
0 |
36 |
SvGETMAGIC(ret); |
|
486
|
36 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
36 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
9 |
27 |
ok = SvTRUE(ret); |
|
|
9 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
9 |
ok = SvTRUE(ret); |
|
|
0 |
27 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
8 |
19 |
ok = SvTRUE(ret); |
|
|
8 |
0 |
ok = SvTRUE(ret); |
|
|
4 |
4 |
ok = SvTRUE(ret); |
|
|
0 |
4 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
4 |
4 |
ok = SvTRUE(ret); |
|
|
19 |
0 |
ok = SvTRUE(ret); |
|
489
|
36 |
0 |
FREETMPS; |
|
496
|
17 |
23 |
if (! ok) { |
|
543
|
2128 |
1136 |
if ((temp = hv_fetch(spec, "type", 4, 0))) { |
|
546
|
1 |
2127 |
if ( ! ( SvOK(*temp) |
|
|
1 |
0 |
if ( ! ( SvOK(*temp) |
|
|
0 |
1 |
if ( ! ( SvOK(*temp) |
|
|
2126 |
0 |
if ( ! ( SvOK(*temp) |
|
|
0 |
2126 |
if ( ! ( SvOK(*temp) |
|
547
|
2126 |
1 |
&& looks_like_number(*temp) |
|
548
|
0 |
0 |
&& SvIV(*temp) > 0 ) ) { |
|
552
|
1 |
1 |
if ( SvOK(*temp) ) { |
|
|
1 |
0 |
if ( SvOK(*temp) ) { |
|
|
0 |
1 |
if ( SvOK(*temp) ) { |
|
564
|
0 |
2126 |
SvGETMAGIC(*temp); |
|
566
|
2126 |
0 |
if (! (type & SvIV(*temp))) { |
|
|
28 |
2098 |
if (! (type & SvIV(*temp))) { |
|
577
|
28 |
0 |
allowed = typemask_to_string(SvIV(*temp)); |
|
590
|
40 |
3194 |
if ((temp = hv_fetch(spec, "isa", 3, 0))) { |
|
591
|
0 |
40 |
SvGETMAGIC(*temp); |
|
593
|
4 |
36 |
if (SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVAV) { |
|
|
4 |
0 |
if (SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVAV) { |
|
596
|
8 |
2 |
for(i = 0; i <= av_len(array); i++) { |
|
600
|
8 |
0 |
if (! package) { |
|
604
|
0 |
8 |
SvGETMAGIC(package); |
|
605
|
6 |
0 |
if (! validate_isa(value, package, id, options)) { |
|
611
|
20 |
0 |
if (! validate_isa(value, *temp, id, options)) { |
|
618
|
30 |
3186 |
if ((temp = hv_fetch(spec, "can", 3, 0))) { |
|
619
|
0 |
30 |
SvGETMAGIC(*temp); |
|
620
|
12 |
18 |
if (SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVAV) { |
|
|
12 |
0 |
if (SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVAV) { |
|
623
|
22 |
4 |
for (i = 0; i <= av_len(array); i++) { |
|
627
|
22 |
0 |
if (! method) { |
|
631
|
0 |
22 |
SvGETMAGIC(method); |
|
633
|
14 |
0 |
if (! validate_can(value, method, id, options)) { |
|
639
|
9 |
0 |
if (! validate_can(value, *temp, id, options)) { |
|
646
|
3039 |
160 |
if ((temp = hv_fetch(spec, "callbacks", 9, 0))) { |
|
649
|
0 |
3039 |
SvGETMAGIC(*temp); |
|
650
|
3039 |
0 |
if (!(SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVHV)) { |
|
|
0 |
3039 |
if (!(SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVHV)) { |
|
661
|
3043 |
3020 |
while ((he = hv_iternext((HV*) SvRV(*temp)))) { |
|
667
|
3043 |
0 |
if (!(SvROK(HeVAL(he)) && SvTYPE(SvRV(HeVAL(he))) == SVt_PVCV)) { |
|
|
0 |
3043 |
if (!(SvROK(HeVAL(he)) && SvTYPE(SvRV(HeVAL(he))) == SVt_PVCV)) { |
|
671
|
0 |
0 |
sv_catsv(buffer, HeSVKEY_force(he)); |
|
|
0 |
0 |
sv_catsv(buffer, HeSVKEY_force(he)); |
|
|
0 |
0 |
sv_catsv(buffer, HeSVKEY_force(he)); |
|
684
|
0 |
3043 |
PUSHMARK(SP); |
|
685
|
0 |
3043 |
EXTEND(SP, 2); |
|
692
|
3043 |
0 |
sv_setpv(ERRSV, ""); |
|
698
|
0 |
3043 |
if (!count) { |
|
703
|
0 |
3043 |
SvGETMAGIC(ret); |
|
704
|
3043 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
3043 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
6 |
3037 |
ok = SvTRUE(ret); |
|
|
6 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
6 |
ok = SvTRUE(ret); |
|
|
3032 |
5 |
ok = SvTRUE(ret); |
|
|
3032 |
0 |
ok = SvTRUE(ret); |
|
|
3031 |
1 |
ok = SvTRUE(ret); |
|
|
3018 |
13 |
ok = SvTRUE(ret); |
|
|
0 |
3018 |
ok = SvTRUE(ret); |
|
|
3019 |
13 |
ok = SvTRUE(ret); |
|
|
5 |
0 |
ok = SvTRUE(ret); |
|
|
5 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
5 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
|
5 |
0 |
ok = SvTRUE(ret); |
|
|
0 |
0 |
ok = SvTRUE(ret); |
|
707
|
3043 |
0 |
SvSetSV_nosteal(err, ERRSV); |
|
|
3043 |
0 |
SvSetSV_nosteal(err, ERRSV); |
|
|
3043 |
0 |
SvSetSV_nosteal(err, ERRSV); |
|
710
|
3043 |
0 |
FREETMPS; |
|
713
|
19 |
3024 |
if (! ok) { |
|
714
|
1 |
18 |
if (SvROK(err)) { |
|
725
|
18 |
0 |
sv_catsv(buffer, HeSVKEY_force(he)); |
|
|
0 |
18 |
sv_catsv(buffer, HeSVKEY_force(he)); |
|
|
18 |
0 |
sv_catsv(buffer, HeSVKEY_force(he)); |
|
727
|
4 |
14 |
if (SvCUR(err) > 0) { |
|
742
|
9 |
3171 |
if ((temp = hv_fetch(spec, "regex", 5, 0))) { |
|
748
|
0 |
9 |
SvGETMAGIC(*temp); |
|
749
|
6 |
3 |
if (SvPOK(*temp)) { |
|
752
|
6 |
0 |
else if (SvROK(*temp)) { |
|
762
|
6 |
0 |
if (SvTYPE(svp) == SVt_REGEXP) { |
|
768
|
0 |
9 |
if (!has_regex) { |
|
778
|
0 |
9 |
PUSHMARK(SP); |
|
779
|
0 |
9 |
EXTEND(SP, 2); |
|
785
|
9 |
0 |
ok = POPi; |
|
788
|
4 |
5 |
if (! ok) { |
|
800
|
0 |
3176 |
if ((temp = hv_fetch(spec, "untaint", 7, 0))) { |
|
801
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
|
0 |
0 |
if (SvTRUE(*temp)) { |
|
815
|
121 |
42 |
while ((he = hv_iternext(in))) { |
|
816
|
121 |
0 |
if (!hv_store_ent(out, HeSVKEY_force(he), |
|
|
0 |
121 |
if (!hv_store_ent(out, HeSVKEY_force(he), |
|
|
121 |
0 |
if (!hv_store_ent(out, HeSVKEY_force(he), |
|
|
0 |
121 |
if (!hv_store_ent(out, HeSVKEY_force(he), |
|
831
|
3314 |
20 |
if (len > -1 && len % 2 != 1) { |
|
|
3 |
3311 |
if (len > -1 && len % 2 != 1) { |
|
842
|
3460 |
3331 |
for (i = 0; i <= av_len(in); i += 2) { |
|
847
|
0 |
3460 |
if (! key) { |
|
851
|
1 |
3459 |
SvGETMAGIC(key); |
|
859
|
3460 |
0 |
if (value) { |
|
860
|
0 |
3460 |
SvGETMAGIC(value); |
|
863
|
0 |
3460 |
if (! hv_store_ent(out, key, SvREFCNT_inc(value), 0)) { |
|
886
|
3427 |
0 |
pkg = sv_2mortal(newSVpv(HvNAME(stash), 0)); |
|
|
3427 |
0 |
pkg = sv_2mortal(newSVpv(HvNAME(stash), 0)); |
|
|
0 |
3427 |
pkg = sv_2mortal(newSVpv(HvNAME(stash), 0)); |
|
|
0 |
0 |
pkg = sv_2mortal(newSVpv(HvNAME(stash), 0)); |
|
|
3427 |
0 |
pkg = sv_2mortal(newSVpv(HvNAME(stash), 0)); |
|
|
0 |
3427 |
pkg = sv_2mortal(newSVpv(HvNAME(stash), 0)); |
|
889
|
40 |
3387 |
if ((he = hv_fetch_ent(OPTIONS, pkg, 0, 0))) { |
|
891
|
0 |
40 |
SvGETMAGIC(pkg_options); |
|
892
|
40 |
0 |
if (SvROK(pkg_options) && SvTYPE(SvRV(pkg_options)) == SVt_PVHV) { |
|
|
40 |
0 |
if (SvROK(pkg_options) && SvTYPE(SvRV(pkg_options)) == SVt_PVHV) { |
|
893
|
2 |
38 |
if (options) { |
|
901
|
40 |
3349 |
if (options) { |
|
919
|
9 |
99 |
if (normalize_func) { |
|
924
|
0 |
9 |
PUSHMARK(SP); |
|
925
|
0 |
9 |
XPUSHs(copy); |
|
927
|
0 |
9 |
if (! call_sv(SvRV(normalize_func), G_SCALAR)) { |
|
934
|
1 |
8 |
if (! SvOK(normalized)) { |
|
|
1 |
0 |
if (! SvOK(normalized)) { |
|
|
1 |
0 |
if (! SvOK(normalized)) { |
|
935
|
1 |
0 |
croak("The normalize_keys callback did not return a defined value when normalizing the key '%s'", SvPV_nolen(copy)); |
|
940
|
99 |
0 |
else if (ignore_case || strip_leading) { |
|
941
|
42 |
57 |
if (ignore_case) { |
|
944
|
42 |
0 |
rawstr = SvPV(copy, len); |
|
945
|
126 |
42 |
for (i = 0; i < len; i++) { |
|
947
|
69 |
57 |
*(rawstr + i) = toLOWER(*(rawstr + i)); |
|
951
|
81 |
18 |
if (strip_leading) { |
|
952
|
48 |
33 |
rawstr_sl = SvPV(strip_leading, len_sl); |
|
953
|
81 |
0 |
rawstr = SvPV(copy, len); |
|
955
|
71 |
10 |
if (len > len_sl && strnEQ(rawstr_sl, rawstr, len_sl)) { |
|
|
3 |
68 |
if (len > len_sl && strnEQ(rawstr_sl, rawstr, len_sl)) { |
|
970
|
50 |
50 |
if (!normalize_func && !ignore_case && !strip_leading) { |
|
|
50 |
0 |
if (!normalize_func && !ignore_case && !strip_leading) { |
|
976
|
108 |
98 |
while ((he = hv_iternext(p))) { |
|
978
|
108 |
0 |
normalize_one_key(HeSVKEY_force(he), normalize_func, strip_leading, ignore_case); |
|
|
0 |
108 |
normalize_one_key(HeSVKEY_force(he), normalize_func, strip_leading, ignore_case); |
|
|
108 |
0 |
normalize_one_key(HeSVKEY_force(he), normalize_func, strip_leading, ignore_case); |
|
980
|
1 |
106 |
if (hv_fetch_ent(norm_p, normalized, 0, 0)) { |
|
981
|
1 |
0 |
croak("The normalize_keys callback returned a key that already exists, '%s', when normalizing the key '%s'", |
|
|
1 |
0 |
croak("The normalize_keys callback returned a key that already exists, '%s', when normalizing the key '%s'", |
|
982
|
1 |
0 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
0 |
1 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
1 |
0 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
1 |
0 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
0 |
1 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
1 |
0 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
0 |
0 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
0 |
0 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
|
0 |
0 |
SvPV_nolen(normalized), SvPV_nolen(HeSVKEY_force(he))); |
|
985
|
0 |
106 |
if (! hv_store_ent(norm_p, normalized, SvREFCNT_inc(HeVAL(he)), 0)) { |
|
999
|
44 |
17 |
for (p_idx = 0; p_idx <= av_len(p); p_idx++) { |
|
1002
|
38 |
6 |
if (p_spec != NULL && SvROK(*p_spec) && |
|
|
19 |
19 |
if (p_spec != NULL && SvROK(*p_spec) && |
|
|
19 |
0 |
if (p_spec != NULL && SvROK(*p_spec) && |
|
1007
|
3 |
16 |
if (! depends) { |
|
1011
|
1 |
2 |
if (SvROK(*depends)) { |
|
1015
|
2 |
0 |
if (av_len(p) < SvIV(*depends) -1) { |
|
|
1 |
1 |
if (av_len(p) < SvIV(*depends) -1) { |
|
1017
|
1 |
0 |
newSVpvf("Parameter #%d depends on parameter #%d, which was not given", |
|
1047
|
3186 |
3153 |
while ((he = hv_iternext(p))) { |
|
1048
|
3186 |
0 |
he1 = hv_fetch_ent(specs, HeSVKEY_force(he), 0, HeHASH(he)); |
|
|
0 |
3186 |
he1 = hv_fetch_ent(specs, HeSVKEY_force(he), 0, HeHASH(he)); |
|
|
3186 |
0 |
he1 = hv_fetch_ent(specs, HeSVKEY_force(he), 0, HeHASH(he)); |
|
1050
|
3181 |
5 |
if (he1 && SvROK(HeVAL(he1)) && |
|
|
3117 |
64 |
if (he1 && SvROK(HeVAL(he1)) && |
|
|
3117 |
0 |
if (he1 && SvROK(HeVAL(he1)) && |
|
1053
|
6 |
3111 |
if (hv_exists((HV*) SvRV(HeVAL(he1)), "depends", 7)) { |
|
1057
|
6 |
0 |
if (! depends_value) { |
|
1061
|
2 |
4 |
if (! SvROK(*depends_value)) { |
|
1066
|
1 |
3 |
else if (SvTYPE(SvRV(*depends_value)) == SVt_PVAV) { |
|
1073
|
7 |
2 |
for (d_idx =0; d_idx <= av_len(depends_list); d_idx++) { |
|
1080
|
7 |
0 |
if (!hv_exists(p, SvPV_nolen(depend_name), |
|
|
3 |
4 |
if (!hv_exists(p, SvPV_nolen(depend_name), |
|
1087
|
3 |
0 |
if (!hv_exists(specs, SvPV_nolen(depend_name), |
|
|
0 |
3 |
if (!hv_exists(specs, SvPV_nolen(depend_name), |
|
1093
|
0 |
0 |
sv_catsv(buffer, HeSVKEY_force(he1)); |
|
|
0 |
0 |
sv_catsv(buffer, HeSVKEY_force(he1)); |
|
|
0 |
0 |
sv_catsv(buffer, HeSVKEY_force(he1)); |
|
1097
|
0 |
0 |
croak("%s", SvPV_nolen(buffer)); |
|
1103
|
3 |
0 |
sv_catsv(buffer, HeSVKEY_force(he1)); |
|
|
0 |
3 |
sv_catsv(buffer, HeSVKEY_force(he1)); |
|
|
3 |
0 |
sv_catsv(buffer, HeSVKEY_force(he1)); |
|
1122
|
3355 |
3229 |
while ((he = hv_iternext(specs))) { |
|
1129
|
3355 |
0 |
if (val && SvROK(val) && SvTYPE(SvRV(val)) == SVt_PVHV) { |
|
|
3249 |
106 |
if (val && SvROK(val) && SvTYPE(SvRV(val)) == SVt_PVHV) { |
|
|
3249 |
0 |
if (val && SvROK(val) && SvTYPE(SvRV(val)) == SVt_PVHV) { |
|
1137
|
3355 |
0 |
if (hv_exists_ent(p, HeSVKEY_force(he), HeHASH(he))) { |
|
|
0 |
3355 |
if (hv_exists_ent(p, HeSVKEY_force(he), HeHASH(he))) { |
|
|
3355 |
0 |
if (hv_exists_ent(p, HeSVKEY_force(he), HeHASH(he))) { |
|
|
3284 |
71 |
if (hv_exists_ent(p, HeSVKEY_force(he), HeHASH(he))) { |
|
1142
|
50 |
21 |
if (spec && (temp = hv_fetch(spec, "default", 7, 0))) { |
|
|
17 |
33 |
if (spec && (temp = hv_fetch(spec, "default", 7, 0))) { |
|
1145
|
0 |
17 |
SvGETMAGIC(*temp); |
|
1149
|
9 |
8 |
if (GIMME_V != G_VOID) { |
|
|
16 |
1 |
if (GIMME_V != G_VOID) { |
|
1150
|
16 |
0 |
if (!hv_store_ent(ret, HeSVKEY_force(he), |
|
|
0 |
16 |
if (!hv_store_ent(ret, HeSVKEY_force(he), |
|
|
16 |
0 |
if (!hv_store_ent(ret, HeSVKEY_force(he), |
|
|
0 |
16 |
if (!hv_store_ent(ret, HeSVKEY_force(he), |
|
1161
|
38 |
16 |
if (! no_validation()) { |
|
1164
|
25 |
13 |
if (spec) { |
|
1165
|
13 |
12 |
if ((temp = hv_fetch(spec, "optional", 8, 0))) { |
|
1166
|
0 |
13 |
SvGETMAGIC(*temp); |
|
1168
|
13 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
13 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
13 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
13 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
13 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
13 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
13 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
0 |
0 |
if (SvTRUE(*temp)) continue; |
|
|
13 |
0 |
if (SvTRUE(*temp)) continue; |
|
1171
|
13 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
13 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
13 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
13 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
13 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
13 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
2 |
11 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
2 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
2 |
11 |
else if (!SvTRUE(HeVAL(he))) { |
|
|
0 |
0 |
else if (!SvTRUE(HeVAL(he))) { |
|
1174
|
23 |
0 |
av_push(missing, SvREFCNT_inc(HeSVKEY_force(he))); |
|
|
0 |
23 |
av_push(missing, SvREFCNT_inc(HeSVKEY_force(he))); |
|
|
23 |
0 |
av_push(missing, SvREFCNT_inc(HeSVKEY_force(he))); |
|
1195
|
56 |
3286 |
if ((temp = hv_fetch(options, "ignore_case", 11, 0))) { |
|
1196
|
0 |
56 |
SvGETMAGIC(*temp); |
|
1197
|
56 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
56 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
56 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
36 |
20 |
ignore_case = SvTRUE(*temp); |
|
|
36 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
36 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
36 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
18 |
18 |
ignore_case = SvTRUE(*temp); |
|
|
18 |
18 |
ignore_case = SvTRUE(*temp); |
|
|
20 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
20 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
16 |
4 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
16 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
0 |
ignore_case = SvTRUE(*temp); |
|
|
4 |
16 |
ignore_case = SvTRUE(*temp); |
|
|
0 |
0 |
ignore_case = SvTRUE(*temp); |
|
1200
|
38 |
3304 |
if ((temp = hv_fetch(options, "strip_leading", 13, 0))) { |
|
1201
|
0 |
38 |
SvGETMAGIC(*temp); |
|
1202
|
0 |
38 |
if (SvOK(*temp)) strip_leading = *temp; |
|
|
0 |
0 |
if (SvOK(*temp)) strip_leading = *temp; |
|
|
0 |
0 |
if (SvOK(*temp)) strip_leading = *temp; |
|
1205
|
42 |
3300 |
if ((temp = hv_fetch(options, "normalize_keys", 14, 0))) { |
|
1206
|
0 |
42 |
SvGETMAGIC(*temp); |
|
1207
|
5 |
37 |
if(SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVCV) { |
|
|
5 |
0 |
if(SvROK(*temp) && SvTYPE(SvRV(*temp)) == SVt_PVCV) { |
|
1212
|
3316 |
26 |
if (normalize_func || ignore_case || strip_leading) { |
|
|
25 |
3291 |
if (normalize_func || ignore_case || strip_leading) { |
|
1218
|
76 |
3264 |
if (no_validation()) { |
|
1219
|
5 |
71 |
if (GIMME_V != G_VOID) { |
|
|
76 |
0 |
if (GIMME_V != G_VOID) { |
|
1220
|
115 |
76 |
while ((he = hv_iternext(p))) { |
|
1222
|
0 |
115 |
if (! hv) { |
|
1226
|
0 |
115 |
SvGETMAGIC(hv); |
|
1229
|
115 |
0 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
|
0 |
115 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
|
115 |
0 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
|
0 |
115 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
1241
|
34 |
3230 |
if ((temp = hv_fetch(options, "allow_extra", 11, 0))) { |
|
1242
|
0 |
34 |
SvGETMAGIC(*temp); |
|
1243
|
34 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
34 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
34 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
34 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
34 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
34 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
29 |
5 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
29 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
5 |
29 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
1250
|
3318 |
3157 |
while ((he = hv_iternext(p))) { |
|
1252
|
0 |
3318 |
if (! hv) { |
|
1256
|
0 |
3318 |
SvGETMAGIC(hv); |
|
1259
|
3123 |
195 |
if (GIMME_V != G_VOID) { |
|
|
3236 |
82 |
if (GIMME_V != G_VOID) { |
|
1260
|
3236 |
0 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
|
0 |
3236 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
|
3236 |
0 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
|
0 |
3236 |
if (!hv_store_ent(ret, HeSVKEY_force(he), SvREFCNT_inc(hv), |
|
1269
|
3318 |
0 |
he1 = hv_fetch_ent(specs, HeSVKEY_force(he), 0, HeHASH(he)); |
|
|
0 |
3318 |
he1 = hv_fetch_ent(specs, HeSVKEY_force(he), 0, HeHASH(he)); |
|
|
3318 |
0 |
he1 = hv_fetch_ent(specs, HeSVKEY_force(he), 0, HeHASH(he)); |
|
1270
|
3287 |
31 |
if(he1) { |
|
1272
|
3215 |
72 |
if (SvROK(hv1) && SvTYPE(SvRV(hv1)) == SVt_PVHV) { |
|
|
3215 |
0 |
if (SvROK(hv1) && SvTYPE(SvRV(hv1)) == SVt_PVHV) { |
|
1278
|
0 |
3215 |
buffer = form("The '%s' parameter (%%s)", HePV(he, PL_na)); |
|
|
0 |
0 |
buffer = form("The '%s' parameter (%%s)", HePV(he, PL_na)); |
|
1280
|
0 |
3134 |
if (! validate_one_param(hv, (SV*) p, spec, buffer, options, &untaint)) |
|
1285
|
0 |
3134 |
if (untaint) { |
|
1286
|
0 |
0 |
av_push(untaint_keys, SvREFCNT_inc(HeSVKEY_force(he1))); |
|
|
0 |
0 |
av_push(untaint_keys, SvREFCNT_inc(HeSVKEY_force(he1))); |
|
|
0 |
0 |
av_push(untaint_keys, SvREFCNT_inc(HeSVKEY_force(he1))); |
|
1290
|
26 |
5 |
else if (! allow_extra) { |
|
1291
|
26 |
0 |
av_push(unmentioned, SvREFCNT_inc(HeSVKEY_force(he))); |
|
|
0 |
26 |
av_push(unmentioned, SvREFCNT_inc(HeSVKEY_force(he))); |
|
|
26 |
0 |
av_push(unmentioned, SvREFCNT_inc(HeSVKEY_force(he))); |
|
1294
|
26 |
3211 |
if (av_len(unmentioned) > -1) { |
|
1298
|
0 |
26 |
if (av_len(unmentioned) != 0) { |
|
1308
|
0 |
26 |
if (av_len(unmentioned) != 0) { |
|
1315
|
26 |
26 |
for(i = 0; i <= av_len(unmentioned); i++) { |
|
1317
|
0 |
26 |
if (i < av_len(unmentioned)) { |
|
1334
|
13 |
3140 |
if (av_len(missing) > -1) { |
|
1342
|
4 |
9 |
if (av_len(missing) > 0) { |
|
1349
|
23 |
13 |
for(i = 0; i <= av_len(missing); i++) { |
|
1350
|
23 |
0 |
sv_catpvf(buffer, "'%s'", |
|
1352
|
10 |
13 |
if (i < av_len(missing)) { |
|
1364
|
3068 |
72 |
if (GIMME_V != G_VOID) { |
|
|
3108 |
32 |
if (GIMME_V != G_VOID) { |
|
1365
|
0 |
3108 |
for (i = 0; i <= av_len(untaint_keys); i++) { |
|
1366
|
0 |
0 |
SvTAINTED_off(HeVAL(hv_fetch_ent(p, *av_fetch(untaint_keys, i, 0), 0, 0))); |
|
1379
|
0 |
21 |
if ((temp = hv_fetch(options, "allow_extra", 11, 0))) { |
|
1380
|
0 |
0 |
SvGETMAGIC(*temp); |
|
1381
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
1388
|
19 |
2 |
if (pnum != 0) { |
|
1396
|
21 |
0 |
if (!allow_extra) { |
|
1397
|
16 |
5 |
if (min != max) { |
|
1407
|
0 |
21 |
if ((allow_extra ? min : max) != 0) { |
|
|
18 |
3 |
if ((allow_extra ? min : max) != 0) { |
|
1424
|
78 |
47 |
if (complex_spec) { |
|
1425
|
29 |
49 |
if ((temp = hv_fetch((HV*) SvRV(spec), "optional", 8, 0))) { |
|
1426
|
0 |
29 |
SvGETMAGIC(*temp); |
|
1427
|
29 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
29 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
29 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
29 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
29 |
0 |
if (!SvTRUE(*temp)) |
|
|
29 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
29 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
|
0 |
29 |
if (!SvTRUE(*temp)) |
|
|
0 |
0 |
if (!SvTRUE(*temp)) |
|
1435
|
47 |
0 |
if (SvTRUE(spec)) { |
|
|
0 |
47 |
if (SvTRUE(spec)) { |
|
|
0 |
47 |
if (SvTRUE(spec)) { |
|
|
0 |
0 |
if (SvTRUE(spec)) { |
|
|
0 |
0 |
if (SvTRUE(spec)) { |
|
|
0 |
47 |
if (SvTRUE(spec)) { |
|
|
0 |
0 |
if (SvTRUE(spec)) { |
|
|
0 |
0 |
if (SvTRUE(spec)) { |
|
|
0 |
0 |
if (SvTRUE(spec)) { |
|
|
0 |
0 |
if (SvTRUE(spec)) { |
|
|
47 |
0 |
if (SvTRUE(spec)) { |
|
|
47 |
0 |
if (SvTRUE(spec)) { |
|
|
13 |
34 |
if (SvTRUE(spec)) { |
|
|
0 |
13 |
if (SvTRUE(spec)) { |
|
|
0 |
0 |
if (SvTRUE(spec)) { |
|
|
13 |
34 |
if (SvTRUE(spec)) { |
|
1456
|
57 |
25 |
if (no_validation()) { |
|
1461
|
1 |
24 |
if (GIMME_V == G_VOID) { |
|
|
25 |
0 |
if (GIMME_V == G_VOID) { |
|
1465
|
62 |
25 |
for (i = 0; i <= max; i++) { |
|
1466
|
58 |
4 |
if (i <= spec_count) { |
|
1468
|
58 |
0 |
if (spec) { |
|
1469
|
0 |
58 |
SvGETMAGIC(spec); |
|
1471
|
35 |
23 |
complex_spec = (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV); |
|
|
0 |
35 |
complex_spec = (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV); |
|
1474
|
36 |
26 |
if (i <= av_len(p)) { |
|
1476
|
0 |
36 |
SvGETMAGIC(value); |
|
1478
|
15 |
11 |
} else if (complex_spec && |
|
|
6 |
9 |
} else if (complex_spec && |
|
1480
|
0 |
6 |
SvGETMAGIC(*temp); |
|
1488
|
105 |
35 |
for (i = 0; i <= av_len(specs); i++) { |
|
1490
|
0 |
105 |
if (! spec) { |
|
1493
|
0 |
105 |
SvGETMAGIC(spec); |
|
1494
|
70 |
35 |
complex_spec = (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV); |
|
|
0 |
70 |
complex_spec = (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV); |
|
1499
|
75 |
30 |
if (! spec_says_optional(spec, complex_spec) ) { |
|
1503
|
72 |
33 |
if (i <= av_len(p)) { |
|
1505
|
1 |
71 |
SvGETMAGIC(value); |
|
1507
|
49 |
23 |
if (complex_spec) { |
|
1512
|
0 |
42 |
if (! validate_one_param(value, (SV*) p, (HV*) SvRV(spec), buffer, options, &untaint)) { |
|
1516
|
0 |
42 |
if (untaint) { |
|
1521
|
11 |
54 |
if (GIMME_V != G_VOID) { |
|
|
54 |
11 |
if (GIMME_V != G_VOID) { |
|
1525
|
21 |
12 |
} else if (complex_spec && |
|
|
7 |
14 |
} else if (complex_spec && |
|
1527
|
0 |
7 |
SvGETMAGIC(*temp); |
|
1529
|
3 |
4 |
if (GIMME_V != G_VOID) { |
|
|
7 |
0 |
if (GIMME_V != G_VOID) { |
|
1535
|
15 |
11 |
if (i == min) { |
|
1542
|
20 |
3 |
for (i++ ; i <= av_len(specs); i++) { |
|
1544
|
0 |
20 |
if (! spec) { |
|
1548
|
0 |
20 |
SvGETMAGIC(spec); |
|
1549
|
8 |
12 |
complex_spec = (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV); |
|
|
0 |
8 |
complex_spec = (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV); |
|
1550
|
8 |
12 |
if (! spec_says_optional(spec, complex_spec)) { |
|
1553
|
8 |
12 |
if (min != i) |
|
1567
|
8 |
25 |
if (av_len(p) > av_len(specs)) { |
|
1568
|
2 |
6 |
if ((temp = hv_fetch(options, "allow_extra", 11, 0))) { |
|
1569
|
0 |
2 |
SvGETMAGIC(*temp); |
|
1570
|
2 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
2 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
2 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
2 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
2 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
2 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
2 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
2 |
0 |
allow_extra = SvTRUE(*temp); |
|
|
0 |
0 |
allow_extra = SvTRUE(*temp); |
|
1575
|
2 |
6 |
if (allow_extra) { |
|
1577
|
0 |
2 |
if (GIMME_V != G_VOID) { |
|
|
2 |
0 |
if (GIMME_V != G_VOID) { |
|
1578
|
2 |
2 |
for(i = av_len(specs) + 1; i <= av_len(p); i++) { |
|
1580
|
2 |
0 |
if (value) { |
|
1581
|
0 |
2 |
SvGETMAGIC(value); |
|
1596
|
7 |
20 |
if (GIMME_V != G_VOID) { |
|
|
22 |
5 |
if (GIMME_V != G_VOID) { |
|
1597
|
0 |
22 |
for (i = 0; i <= av_len(untaint_indexes); i++) { |
|
1598
|
0 |
0 |
SvTAINTED_off(*av_fetch(p, SvIV(*av_fetch(untaint_indexes, i, 0)), 0)); |
|
|
0 |
0 |
SvTAINTED_off(*av_fetch(p, SvIV(*av_fetch(untaint_indexes, i, 0)), 0)); |
|
1622
|
82 |
3237 |
if (no_validation() && GIMME_V == G_VOID) { |
|
|
9 |
73 |
if (no_validation() && GIMME_V == G_VOID) { |
|
|
10 |
72 |
if (no_validation() && GIMME_V == G_VOID) { |
|
1626
|
0 |
3309 |
SvGETMAGIC(p); |
|
1627
|
3309 |
0 |
if (! (SvROK(p) && SvTYPE(SvRV(p)) == SVt_PVAV)) { |
|
|
0 |
3309 |
if (! (SvROK(p) && SvTYPE(SvRV(p)) == SVt_PVAV)) { |
|
1631
|
0 |
3309 |
SvGETMAGIC(specs); |
|
1632
|
3309 |
0 |
if (! (SvROK(specs) && SvTYPE(SvRV(specs)) == SVt_PVHV)) { |
|
|
0 |
3309 |
if (! (SvROK(specs) && SvTYPE(SvRV(specs)) == SVt_PVHV)) { |
|
1638
|
11 |
3298 |
if (av_len(pa) == 0) { |
|
1644
|
11 |
0 |
if (value) { |
|
1645
|
0 |
11 |
SvGETMAGIC(value); |
|
1646
|
8 |
3 |
if (SvROK(value) && SvTYPE(SvRV(value)) == SVt_PVHV) { |
|
|
8 |
0 |
if (SvROK(value) && SvTYPE(SvRV(value)) == SVt_PVHV) { |
|
1654
|
3301 |
8 |
if (! ph) { |
|
1661
|
0 |
3298 |
if (!ok) { |
|
1665
|
3085 |
221 |
if (GIMME_V != G_VOID) { |
|
|
3239 |
67 |
if (GIMME_V != G_VOID) { |
|
1673
|
0 |
3189 |
if (! ok) { |
|
1677
|
3046 |
143 |
RETURN_HASH(ret); |
|
|
3155 |
0 |
RETURN_HASH(ret); |
|
|
0 |
3155 |
RETURN_HASH(ret); |
|
|
3227 |
0 |
RETURN_HASH(ret); |
|
|
0 |
3227 |
RETURN_HASH(ret); |
|
|
3227 |
0 |
RETURN_HASH(ret); |
|
|
3227 |
3155 |
RETURN_HASH(ret); |
|
|
0 |
4 |
RETURN_HASH(ret); |
|
1692
|
24 |
54 |
if (no_validation() && GIMME_V == G_VOID) { |
|
|
0 |
24 |
if (no_validation() && GIMME_V == G_VOID) { |
|
|
0 |
24 |
if (no_validation() && GIMME_V == G_VOID) { |
|
1696
|
0 |
78 |
SvGETMAGIC(p); |
|
1697
|
78 |
0 |
if (!SvROK(p) || !(SvTYPE(SvRV(p)) == SVt_PVAV)) { |
|
|
0 |
78 |
if (!SvROK(p) || !(SvTYPE(SvRV(p)) == SVt_PVAV)) { |
|
1703
|
179 |
78 |
for(i = 1; i < items; i++) { |
|
1704
|
0 |
179 |
if (!av_store(specs, i - 1, SvREFCNT_inc(ST(i)))) { |
|
1710
|
8 |
70 |
if (GIMME_V != G_VOID) { |
|
|
71 |
7 |
if (GIMME_V != G_VOID) { |
|
1718
|
0 |
49 |
if (! ok) { |
|
1722
|
5 |
44 |
RETURN_ARRAY(ret); |
|
|
43 |
0 |
RETURN_ARRAY(ret); |
|
|
0 |
43 |
RETURN_ARRAY(ret); |
|
|
68 |
43 |
RETURN_ARRAY(ret); |
|
|
0 |
2 |
RETURN_ARRAY(ret); |
|
1735
|
11 |
34 |
if (no_validation() && GIMME_V == G_VOID) XSRETURN(0); |
|
|
11 |
0 |
if (no_validation() && GIMME_V == G_VOID) XSRETURN(0); |
|
|
5 |
6 |
if (no_validation() && GIMME_V == G_VOID) XSRETURN(0); |
|
1739
|
109 |
40 |
for(i = 0; i < items; i += 2) { |
|
1744
|
109 |
0 |
if (i + 1 < items) { |
|
1750
|
0 |
109 |
if (! hv_store_ent(p, key, SvREFCNT_inc(value), 0)) { |
|
1757
|
0 |
40 |
SvGETMAGIC(params); |
|
1759
|
0 |
40 |
SvGETMAGIC(spec); |
|
1761
|
40 |
0 |
if (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVAV) { |
|
|
4 |
36 |
if (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVAV) { |
|
1762
|
4 |
0 |
if (SvROK(params) && SvTYPE(SvRV(params)) == SVt_PVAV) { |
|
|
4 |
0 |
if (SvROK(params) && SvTYPE(SvRV(params)) == SVt_PVAV) { |
|
1765
|
4 |
0 |
if (GIMME_V != G_VOID) { |
|
|
2 |
2 |
if (GIMME_V != G_VOID) { |
|
1773
|
0 |
3 |
if (! ok) { |
|
1777
|
3 |
0 |
RETURN_ARRAY(ret); |
|
|
2 |
0 |
RETURN_ARRAY(ret); |
|
|
0 |
2 |
RETURN_ARRAY(ret); |
|
|
4 |
2 |
RETURN_ARRAY(ret); |
|
|
0 |
0 |
RETURN_ARRAY(ret); |
|
1783
|
36 |
0 |
else if (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV) { |
|
|
36 |
0 |
else if (SvROK(spec) && SvTYPE(SvRV(spec)) == SVt_PVHV) { |
|
1790
|
36 |
0 |
if (SvROK(params) && SvTYPE(SvRV(params)) == SVt_PVHV) { |
|
|
35 |
1 |
if (SvROK(params) && SvTYPE(SvRV(params)) == SVt_PVHV) { |
|
1793
|
35 |
0 |
else if (SvROK(params) && SvTYPE(SvRV(params)) == SVt_PVAV) { |
|
|
35 |
0 |
else if (SvROK(params) && SvTYPE(SvRV(params)) == SVt_PVAV) { |
|
1798
|
2 |
33 |
if (av_len((AV*) SvRV(params)) == 0) { |
|
1803
|
2 |
0 |
if (first_elem && SvROK(*first_elem) && |
|
|
2 |
0 |
if (first_elem && SvROK(*first_elem) && |
|
|
2 |
0 |
if (first_elem && SvROK(*first_elem) && |
|
1811
|
33 |
2 |
if (! hv_set) { |
|
1818
|
0 |
33 |
if (!ok) { |
|
1827
|
36 |
0 |
if (GIMME_V != G_VOID) { |
|
|
33 |
3 |
if (GIMME_V != G_VOID) { |
|
1835
|
0 |
27 |
if (! ok) { |
|
1839
|
27 |
0 |
RETURN_HASH(ret); |
|
|
21 |
0 |
RETURN_HASH(ret); |
|
|
0 |
21 |
RETURN_HASH(ret); |
|
|
25 |
0 |
RETURN_HASH(ret); |
|
|
0 |
25 |
RETURN_HASH(ret); |
|
|
25 |
0 |
RETURN_HASH(ret); |
|
|
25 |
21 |
RETURN_HASH(ret); |
|
|
0 |
4 |
RETURN_HASH(ret); |