| line |
true |
false |
branch |
|
13
|
1 |
5 |
if (!clists) clists = newHV(); |
|
14
|
6 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
6 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
0 |
6 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
0 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
6 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
0 |
6 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
6 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
6 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
0 |
6 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
0 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
6 |
0 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
|
0 |
6 |
SV* clist = *hv_fetch(clists, HvNAME(stash), HvNAMELEN(stash), 1); |
|
16
|
3 |
3 |
if (!SvOK(clist)) { |
|
|
3 |
0 |
if (!SvOK(clist)) { |
|
|
3 |
0 |
if (!SvOK(clist)) { |
|
17
|
3 |
0 |
SvUPGRADE(clist, SVt_RV); |
|
27
|
0 |
13 |
if (!stash_constants_list) stash_constants_list = constants_list(aTHX_ stash); |
|
29
|
1 |
12 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
|
0 |
1 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
|
0 |
1 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
|
0 |
0 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
|
0 |
1 |
if (!SvPOK(name)) EX_CROAK_BADNAME(HvNAME(stash), SvPV_nolen(name)); |
|
30
|
0 |
12 |
if (!SvCUR(name)) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!SvCUR(name)) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!SvCUR(name)) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!SvCUR(name)) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!SvCUR(name)) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!SvCUR(name)) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!SvCUR(name)) EX_CROAK_NONAME(HvNAME(stash)); |
|
32
|
12 |
0 |
if (need_inc) { |
|
33
|
12 |
0 |
if (SvIsCOW_shared_hash(name)) SvREFCNT_inc(name); |
|
|
12 |
0 |
if (SvIsCOW_shared_hash(name)) SvREFCNT_inc(name); |
|
42
|
0 |
0 |
HEK* hek = CvNAMED(sub) ? CvNAME_HEK(sub) : GvNAME_HEK(CvGV(sub)); |
|
43
|
0 |
0 |
if (!hek) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!hek) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!hek) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!hek) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!hek) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!hek) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!hek) EX_CROAK_NONAME(HvNAME(stash)); |
|
61
|
0 |
14 |
if (!name) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!name) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!name) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!name) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!name) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!name) EX_CROAK_NONAME(HvNAME(stash)); |
|
|
0 |
0 |
if (!name) EX_CROAK_NONAME(HvNAME(stash)); |
|
65
|
1 |
13 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
0 |
1 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
0 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
1 |
0 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
|
0 |
1 |
if (sym_he && HeVAL(sym_he) && isGV(HeVAL(sym_he)) && GvCV(HeVAL(sym_he))) EX_CROAK_EXISTS(HvNAME(stash), SvPV_nolen(name)); |
|
70
|
12 |
0 |
if (value) SvREFCNT_inc(value); |
|
93
|
0 |
0 |
if (constant.svalue) create_constant(aTHX_ stash, constant.name, constant.svalue, stash_constants_list); |
|
99
|
0 |
3 |
XS_HV_ITER(constants, { |
|
|
3 |
0 |
XS_HV_ITER(constants, { |
|
|
31 |
2 |
XS_HV_ITER(constants, { |
|
|
13 |
30 |
XS_HV_ITER(constants, { |
|
107
|
1 |
0 |
if (!list || !items) return; |
|
|
0 |
1 |
if (!list || !items) return; |
|
109
|
1 |
0 |
for (size_t i = 0; i < items - 1; i += 2) { |
|
117
|
0 |
0 |
if (!list || !items) return; |
|
|
0 |
0 |
if (!list || !items) return; |
|
119
|
0 |
0 |
while (items--) { |
|
121
|
0 |
0 |
if (!constant.name) break; |
|
122
|
0 |
0 |
SV* namesv = newSVpvn_share(constant.name, strlen(constant.name), 0); |
|
123
|
0 |
0 |
SV* valuesv = constant.svalue ? newSVpv(constant.svalue, 0) : newSViv(constant.value); |
|
|
0 |
0 |
SV* valuesv = constant.svalue ? newSVpv(constant.svalue, 0) : newSViv(constant.value); |
|
|
0 |
0 |
SV* valuesv = constant.svalue ? newSVpv(constant.svalue, 0) : newSViv(constant.value); |
|
124
|
0 |
0 |
create_constant(aTHX_ stash, namesv, valuesv, clist); |
|
125
|
0 |
0 |
SvREFCNT_dec_NN(namesv); |
|
126
|
0 |
0 |
SvREFCNT_dec_NN(valuesv); |
|
132
|
26 |
1 |
GV* symentry = symentry_ent ? (GV*)HeVAL(symentry_ent) : NULL; |
|
133
|
26 |
1 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
26 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
0 |
26 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
1 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
1 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
1 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
0 |
1 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
1 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
|
0 |
1 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), SvPV_nolen(name)); |
|
141
|
0 |
0 |
GV* symentry = symentry_ref ? (GV*)(*symentry_ref) : NULL; |
|
142
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
|
0 |
0 |
if (!symentry || (isGV(symentry) && !GvCV(symentry))) EX_CROAK_NOSUB(HvNAME(from), name); |
|
156
|
28 |
5 |
while (items--) { |
|
158
|
0 |
28 |
if (!name) continue; |
|
160
|
1 |
27 |
if (name_str[0] == ':' && strEQ(name_str, ":const")) { |
|
|
1 |
0 |
if (name_str[0] == ':' && strEQ(name_str, ":const")) { |
|
163
|
1 |
0 |
if (AvARRAY(clist) != list) export_subs(aTHX_ from, to, AvARRAY(clist), AvFILLp(clist)+1); |
|
171
|
0 |
0 |
while (items--) { |
|
173
|
0 |
0 |
if (!name) break; |
|
174
|
0 |
0 |
if (name[0] == ':' && strEQ(name, ":const")) { |
|
|
0 |
0 |
if (name[0] == ':' && strEQ(name, ":const")) { |
|
183
|
2 |
0 |
}} |
|
|
2 |
0 |
}} |