line |
true |
false |
branch |
14
|
2 |
0 |
if (PL_in_eval) |
15
|
2 |
0 |
sv_catsv(ERRSV, err); |
16
|
0 |
0 |
else if (PL_errors) |
20
|
0 |
2 |
++PL_error_count; |
54
|
71 |
0 |
if(sv_true(ERRSV)){ /* dying by bad attributes */ |
|
2 |
69 |
if(sv_true(ERRSV)){ /* dying by bad attributes */ |
55
|
2 |
0 |
qerror(ERRSV); |
62
|
0 |
69 |
if(MY_CXT.debug){ |
63
|
0 |
0 |
warn("apply attribute :%s%s to &%s in %"SVf, |
65
|
0 |
0 |
SvOK(data) ? form("(%"SVf")", data) : "", |
|
0 |
0 |
SvOK(data) ? form("(%"SVf")", data) : "", |
71
|
0 |
69 |
PUSHMARK(SP); |
72
|
0 |
69 |
EXTEND(SP, 5); |
75
|
68 |
1 |
if(!CvANON(cv)){ |
91
|
69 |
0 |
if(sv_true(ERRSV)){ |
|
0 |
69 |
if(sv_true(ERRSV)){ |
93
|
0 |
0 |
sv_setpvf(msg, "Can't apply attribute %"SVf" because: %"SVf, name, ERRSV); |
109
|
71 |
24 |
while(svp != end){ |
113
|
69 |
2 |
FREETMPS; |
125
|
84 |
0 |
const char* const pv = SvPV_const(sv, len); |
155
|
0 |
11 |
MY_CXT.debug = (d && *d != '\0' && strNE(d, "0")); |
|
0 |
0 |
MY_CXT.debug = (d && *d != '\0' && strNE(d, "0")); |
|
0 |
0 |
MY_CXT.debug = (d && *d != '\0' && strNE(d, "0")); |
169
|
84 |
0 |
HV* const hinthv = GvHVn(PL_hintgv); |
175
|
24 |
60 |
if(!mg){ |
182
|
88 |
84 |
for(i = 2; i < items; i++){ |
184
|
88 |
0 |
const char* const attr = SvPV_const(ST(i), attrlen); |
187
|
14 |
74 |
STRLEN const namelen = data ? (STRLEN)(data - attr) : attrlen; |
190
|
14 |
74 |
if(data){ |
192
|
6 |
14 |
while(isSPACE(*data)){ |
196
|
6 |
14 |
while(isSPACE(data[datalen-1])){ |
201
|
13 |
75 |
if(strnEQ(attr, META_ATTR, sizeof(META_ATTR))){ /* meta attribute */ |
202
|
0 |
13 |
if(!MgFind((SV*)code, &attr_handler_vtbl)){ |
|
0 |
0 |
if(!MgFind((SV*)code, &attr_handler_vtbl)){ |
209
|
0 |
13 |
if(MY_CXT.debug){ |
217
|
72 |
3 |
if(meth && MgFind((SV*)GvCV(meth), &attr_handler_vtbl)){ |
|
71 |
1 |
if(meth && MgFind((SV*)GvCV(meth), &attr_handler_vtbl)){ |
|
71 |
0 |
if(meth && MgFind((SV*)GvCV(meth), &attr_handler_vtbl)){ |
225
|
13 |
58 |
if(data){ |
232
|
0 |
4 |
if(MY_CXT.debug){ |
248
|
0 |
4 |
XPUSHs(ST(i)); |