| line |
true |
false |
branch |
|
162
|
2 |
24 |
if (strEQ(vartype, "SCALAR")) { |
|
165
|
1 |
23 |
else if (strEQ(vartype, "ARRAY")) { |
|
168
|
3 |
20 |
else if (strEQ(vartype, "HASH")) { |
|
171
|
20 |
0 |
else if (strEQ(vartype, "CODE")) { |
|
174
|
0 |
0 |
else if (strEQ(vartype, "IO")) { |
|
188
|
78 |
0 |
buf = SvPV(package, len); |
|
207
|
0 |
566 |
if (!SvCUR(variable)) |
|
212
|
566 |
0 |
varpv = SvPV_nolen(varspec->name); |
|
241
|
0 |
0 |
if (!val) |
|
247
|
0 |
0 |
if (!val) |
|
250
|
0 |
0 |
varspec->type = string_to_vartype(SvPV_nolen(HeVAL(val))); |
|
255
|
566 |
0 |
if (strstr(SvPV_nolen(varspec->name), "::")) { |
|
|
3 |
563 |
if (strstr(SvPV_nolen(varspec->name), "::")) { |
|
262
|
223 |
4 |
svtype sv_type = SvROK(value) ? SvTYPE(SvRV(value)) : SVt_NULL; |
|
270
|
13 |
2 |
return SVT_SCALAR(sv_type) && sv_type != SVt_PVGV; |
|
|
12 |
1 |
return SVT_SCALAR(sv_type) && sv_type != SVt_PVGV; |
|
289
|
0 |
587 |
PUSHMARK(SP); |
|
290
|
0 |
587 |
XPUSHs(self); |
|
307
|
0 |
85 |
PUSHMARK(SP); |
|
308
|
0 |
85 |
XPUSHs(self); |
|
325
|
226 |
0 |
name_pv = SvPV(name, name_len); |
|
326
|
225 |
1 |
if (!HvENAME(stash)) { |
|
|
225 |
0 |
if (!HvENAME(stash)) { |
|
|
225 |
0 |
if (!HvENAME(stash)) { |
|
|
0 |
225 |
if (!HvENAME(stash)) { |
|
|
0 |
225 |
if (!HvENAME(stash)) { |
|
|
225 |
0 |
if (!HvENAME(stash)) { |
|
|
0 |
225 |
if (!HvENAME(stash)) { |
|
336
|
3 |
0 |
if (strEQ(&name_pv[1], "SA")) { |
|
339
|
0 |
3 |
av = GvAVn(gv); |
|
345
|
0 |
0 |
if (strEQ(&name_pv[1], "VERLOAD")) { |
|
348
|
0 |
0 |
hv = GvHVn(gv); |
|
362
|
10 |
0 |
if (entry) { |
|
364
|
0 |
10 |
if (isGV(glob)) { |
|
371
|
10 |
0 |
if (HeVAL(entry)) { |
|
410
|
227 |
0 |
if (entry && isGV(HeVAL(entry))) { |
|
|
11 |
216 |
if (entry && isGV(HeVAL(entry))) { |
|
413
|
216 |
0 |
else if (entry) { |
|
416
|
216 |
0 |
if (HeVAL(entry)) { |
|
425
|
5 |
222 |
if (!initial) { |
|
428
|
218 |
4 |
else if (SvROK(initial)) { |
|
438
|
14 |
0 |
GvSetSV(glob, val); |
|
441
|
4 |
0 |
GvSetAV(glob, val); |
|
444
|
7 |
0 |
GvSetHV(glob, val); |
|
447
|
200 |
0 |
GvSetCV(glob, val); |
|
450
|
2 |
0 |
GvSetIO(glob, val); |
|
|
0 |
2 |
GvSetIO(glob, val); |
|
|
0 |
0 |
GvSetIO(glob, val); |
|
|
2 |
0 |
GvSetIO(glob, val); |
|
484
|
1 |
0 |
return GvIOOK(glob) ? 1 : 0; |
|
|
0 |
1 |
return GvIOOK(glob) ? 1 : 0; |
|
|
0 |
0 |
return GvIOOK(glob) ? 1 : 0; |
|
|
1 |
0 |
return GvIOOK(glob) ? 1 : 0; |
|
|
0 |
1 |
return GvIOOK(glob) ? 1 : 0; |
|
500
|
16 |
260 |
entry = hv_fetch_ent(namespace, variable->name, |
|
|
7 |
9 |
entry = hv_fetch_ent(namespace, variable->name, |
|
503
|
7 |
269 |
if (!entry) |
|
507
|
10 |
259 |
if (!isGV(glob)) |
|
510
|
16 |
253 |
if (vivify && !_slot_exists(glob, variable->type)) { |
|
|
4 |
12 |
if (vivify && !_slot_exists(glob, variable->type)) { |
|
524
|
11 |
0 |
return (SV*)GvIO(glob); |
|
|
0 |
11 |
return (SV*)GvIO(glob); |
|
|
0 |
0 |
return (SV*)GvIO(glob); |
|
|
11 |
0 |
return (SV*)GvIO(glob); |
|
541
|
78 |
3 |
if (SvPOK(package)) { |
|
542
|
5 |
73 |
if (!_is_valid_module_name(package)) |
|
543
|
5 |
0 |
croak("%s is not a module name", SvPV_nolen(package)); |
|
547
|
0 |
73 |
if (!hv_store(instance, "name", 4, SvREFCNT_inc_simple_NN(package), 0)) { |
|
553
|
2 |
1 |
else if (SvROK(package) && SvTYPE(SvRV(package)) == SVt_PVHV) { |
|
|
1 |
1 |
else if (SvROK(package) && SvTYPE(SvRV(package)) == SVt_PVHV) { |
|
560
|
0 |
1 |
if (!hv_store(instance, "namespace", 9, SvREFCNT_inc_simple_NN(package), 0)) { |
|
581
|
1 |
85 |
if (!sv_isobject(self)) |
|
583
|
85 |
0 |
if ((slot = hv_fetch_ent((HV*)SvRV(self), name_key, 0, name_hash))) { |
|
599
|
0 |
584 |
if (!sv_isobject(self)) |
|
606
|
513 |
71 |
if (slot) { |
|
614
|
71 |
0 |
namespace = gv_stashpv(SvPV_nolen(package_name), GV_ADD); |
|
617
|
0 |
71 |
if (!hv_store((HV*)SvRV(self), "namespace", 9, nsref, 0)) { |
|
634
|
227 |
1 |
if (initial && !_valid_for_type(initial, variable.type)) |
|
|
5 |
222 |
if (initial && !_valid_for_type(initial, variable.type)) |
|
635
|
0 |
5 |
croak("%s is not of type %s", |
|
638
|
222 |
1 |
if (items > 2 && (PL_perldb & 0x10) && variable.type == VAR_CODE) { |
|
|
14 |
208 |
if (items > 2 && (PL_perldb & 0x10) && variable.type == VAR_CODE) { |
|
|
14 |
0 |
if (items > 2 && (PL_perldb & 0x10) && variable.type == VAR_CODE) { |
|
645
|
0 |
14 |
if ((items - 3) % 2) |
|
648
|
3 |
14 |
for (i = 3; i < items; i += 2) { |
|
650
|
3 |
0 |
key = SvPV_nolen(ST(i)); |
|
651
|
1 |
2 |
if (strEQ(key, "filename")) { |
|
652
|
0 |
1 |
if (!SvPOK(ST(i + 1))) |
|
654
|
1 |
0 |
filename = SvPV_nolen(ST(i + 1)); |
|
656
|
1 |
1 |
else if (strEQ(key, "first_line_num")) { |
|
657
|
0 |
1 |
if (!SvIOK(ST(i + 1))) |
|
659
|
1 |
0 |
first_line_num = SvIV(ST(i + 1)); |
|
661
|
1 |
0 |
else if (strEQ(key, "last_line_num")) { |
|
662
|
0 |
1 |
if (!SvIOK(ST(i + 1))) |
|
664
|
1 |
0 |
last_line_num = SvIV(ST(i + 1)); |
|
668
|
1 |
13 |
if (!filename || first_line_num == -1) { |
|
|
0 |
1 |
if (!filename || first_line_num == -1) { |
|
669
|
13 |
0 |
if (!filename) |
|
670
|
13 |
0 |
filename = CopFILE(PL_curcop); |
|
671
|
13 |
0 |
if (first_line_num == -1) |
|
675
|
13 |
1 |
if (last_line_num == -1) |
|
685
|
0 |
14 |
if (!hv_store_ent(dbsub, name, dbval, 0)) { |
|
686
|
0 |
0 |
warn("Failed to update $DB::sub for subroutine %s", |
|
714
|
3 |
50 |
if (!entry) |
|
718
|
50 |
0 |
if (isGV(val)) { |
|
731
|
13 |
0 |
RETVAL = GvCVOK(glob) ? 1 : 0; |
|
|
7 |
6 |
RETVAL = GvCVOK(glob) ? 1 : 0; |
|
734
|
5 |
0 |
RETVAL = GvIOOK(glob) ? 1 : 0; |
|
|
0 |
5 |
RETVAL = GvIOOK(glob) ? 1 : 0; |
|
|
0 |
0 |
RETVAL = GvIOOK(glob) ? 1 : 0; |
|
|
5 |
0 |
RETVAL = GvIOOK(glob) ? 1 : 0; |
|
|
4 |
1 |
RETVAL = GvIOOK(glob) ? 1 : 0; |
|
754
|
7 |
253 |
if (!val) |
|
768
|
0 |
16 |
if (!val) |
|
785
|
0 |
6 |
if (!entry) |
|
789
|
6 |
0 |
if (isGV(val)) { |
|
793
|
0 |
1 |
GvSetSV(glob, NULL); |
|
796
|
0 |
0 |
GvSetAV(glob, NULL); |
|
799
|
0 |
1 |
GvSetHV(glob, NULL); |
|
802
|
0 |
3 |
GvSetCV(glob, NULL); |
|
805
|
1 |
0 |
GvSetIO(glob, NULL); |
|
|
0 |
1 |
GvSetIO(glob, NULL); |
|
|
0 |
0 |
GvSetIO(glob, NULL); |
|
|
1 |
0 |
GvSetIO(glob, NULL); |
|
813
|
0 |
0 |
if (variable.type == VAR_CODE) { |
|
823
|
2 |
24 |
if (vartype == VAR_NONE) { |
|
830
|
2 |
0 |
EXTEND(SP, keys); |
|
|
0 |
2 |
EXTEND(SP, keys); |
|
831
|
13 |
2 |
while ((entry = hv_iternext(namespace))) { |
|
851
|
332 |
24 |
while ((val = hv_iternextsv(namespace, &key, &len))) { |
|
858
|
332 |
0 |
if (isGV(gv)) { |
|
861
|
1 |
9 |
if (GvSVOK(val)) |
|
862
|
0 |
1 |
mXPUSHp(key, len); |
|
865
|
2 |
5 |
if (GvAVOK(val)) |
|
866
|
0 |
2 |
mXPUSHp(key, len); |
|
869
|
3 |
12 |
if (GvHVOK(val)) |
|
870
|
0 |
3 |
mXPUSHp(key, len); |
|
873
|
268 |
32 |
if (GvCVOK(val)) |
|
|
207 |
61 |
if (GvCVOK(val)) |
|
874
|
0 |
207 |
mXPUSHp(key, len); |
|
877
|
0 |
0 |
if (GvIOOK(val)) |
|
|
0 |
0 |
if (GvIOOK(val)) |
|
|
0 |
0 |
if (GvIOOK(val)) |
|
|
0 |
0 |
if (GvIOOK(val)) |
|
|
0 |
0 |
if (GvIOOK(val)) |
|
878
|
0 |
0 |
mXPUSHp(key, len); |
|
884
|
0 |
0 |
else if (vartype == VAR_CODE) { |
|
885
|
0 |
0 |
mXPUSHp(key, len); |
|
902
|
20 |
3 |
while ((entry = hv_iternext(namespace))) { |
|
915
|
0 |
20 |
if (!isGV(gv)) { |
|
923
|
0 |
0 |
if (GvSVOK(gv)) |
|
927
|
0 |
0 |
if (GvAVOK(gv)) |
|
931
|
2 |
6 |
if (GvHVOK(gv)) |
|
935
|
6 |
0 |
if (GvCVOK(gv)) |
|
|
2 |
4 |
if (GvCVOK(gv)) |
|
939
|
0 |
0 |
if (GvIOOK(gv)) |
|
|
0 |
0 |
if (GvIOOK(gv)) |
|
|
0 |
0 |
if (GvIOOK(gv)) |
|
|
0 |
0 |
if (GvIOOK(gv)) |
|
|
0 |
0 |
if (GvIOOK(gv)) |
|
940
|
0 |
0 |
hv_store(ret, key, len, newRV_inc((SV*)GvIO(gv)), 0); |
|
|
0 |
0 |
hv_store(ret, key, len, newRV_inc((SV*)GvIO(gv)), 0); |
|
|
0 |
0 |
hv_store(ret, key, len, newRV_inc((SV*)GvIO(gv)), 0); |
|
|
0 |
0 |
hv_store(ret, key, len, newRV_inc((SV*)GvIO(gv)), 0); |