| line |
true |
false |
branch |
|
38
|
46 |
1 |
if(!SvROK(self) || !SvOBJECT(SvRV(self))) |
|
|
0 |
46 |
if(!SvROK(self) || !SvOBJECT(SvRV(self))) |
|
57
|
0 |
21 |
if(SvROK(self)) |
|
76
|
203 |
0 |
if(!svp || !*svp || !SvOK(*svp)) |
|
|
203 |
0 |
if(!svp || !*svp || !SvOK(*svp)) |
|
|
0 |
203 |
if(!svp || !*svp || !SvOK(*svp)) |
|
|
0 |
0 |
if(!svp || !*svp || !SvOK(*svp)) |
|
|
0 |
0 |
if(!svp || !*svp || !SvOK(*svp)) |
|
78
|
203 |
0 |
return (ClassMeta *)(intptr_t)SvIV(*svp); |
|
83
|
103 |
3 |
if(!svp || !*svp) |
|
|
103 |
0 |
if(!svp || !*svp) |
|
86
|
0 |
103 |
if(SvOK(*svp) && SvIV(*svp)) |
|
|
0 |
0 |
if(SvOK(*svp) && SvIV(*svp)) |
|
|
0 |
0 |
if(SvOK(*svp) && SvIV(*svp)) |
|
|
103 |
0 |
if(SvOK(*svp) && SvIV(*svp)) |
|
|
0 |
103 |
if(SvOK(*svp) && SvIV(*svp)) |
|
115
|
14 |
23 |
if(!SvPOK(sv) || !SvCUR(sv)) |
|
|
12 |
2 |
if(!SvPOK(sv) || !SvCUR(sv)) |
|
121
|
12 |
0 |
while(*src && isSPACE(*src)) |
|
|
0 |
12 |
while(*src && isSPACE(*src)) |
|
124
|
0 |
12 |
if(src > dst) { |
|
131
|
12 |
0 |
while(src > dst && isSPACE(*src)) |
|
|
0 |
12 |
while(src > dst && isSPACE(*src)) |
|
157
|
0 |
41 |
if(!package_name) |
|
164
|
1 |
40 |
if (type == 1) { |
|
169
|
10 |
31 |
if(nattrs) { |
|
171
|
11 |
10 |
for(i = 0; i < nattrs; i++) { |
|
192
|
40 |
1 |
if(lex_consume_unichar('{')) { |
|
196
|
0 |
1 |
else if(lex_consume_unichar(';')) { |
|
214
|
40 |
1 |
if (exists_class_block) { |
|
221
|
0 |
40 |
if(!lex_consume_unichar('}')) |
|
227
|
0 |
40 |
for (int32_t i = 0; i < av_count(role_names); i++) { |
|
|
0 |
40 |
for (int32_t i = 0; i < av_count(role_names); i++) { |
|
229
|
0 |
0 |
if (role_name) { |
|
234
|
0 |
0 |
sv_catpv(sv_source_code, SvPV_nolen(class->name)); |
|
237
|
0 |
0 |
sv_catpv(sv_source_code, SvPV_nolen(role_name)); |
|
242
|
0 |
0 |
Perl_eval_pv(aTHX_ SvPV_nolen(sv_source_code), 1); |
|
256
|
1 |
0 |
croak("The %s class must have its block", SvPV_nolen(class->name)); |
|
284
|
2 |
38 |
if(!S_have_current_parsed_class(aTHX)) |
|
287
|
0 |
38 |
if(!sv_eq(PL_curstname, S_current_parsed_class(aTHX)->name)) |
|
301
|
24 |
14 |
if(nattrs) { |
|
302
|
26 |
24 |
while(argi < (nattrs+2)) { |
|
310
|
26 |
0 |
if(attrval) |
|
335
|
1 |
65 |
if(!S_have_current_parsed_class(aTHX)) |
|
338
|
0 |
65 |
if(!sv_eq(PL_curstname, S_current_parsed_class(aTHX)->name)) |
|
367
|
0 |
18 |
MethodMeta* current_parsed_method = NUM2PTR(MethodMeta* , SvUV(*hv_fetchs(ctx->moddata, "Class::Plain/current_parsed_method", 0))); |
|
370
|
18 |
0 |
for(def = method_attributes; def->attrname; def++) { |
|
371
|
0 |
18 |
if(!strEQ(SvPVX(attr), def->attrname)) |
|
376
|
0 |
18 |
(*def->apply)(aTHX_ current_parsed_method, SvPOK(val) ? SvPVX(val) : NULL, def->applydata); |
|
387
|
0 |
65 |
MethodMeta* current_parsed_method = NUM2PTR(MethodMeta* , SvUV(*hv_fetchs(ctx->moddata, "Class::Plain/current_parsed_method", 0))); |
|
388
|
18 |
47 |
if(current_parsed_method->is_common) { |
|
390
|
0 |
18 |
if (!(var_index == 1)) { |
|
396
|
0 |
47 |
if(var_index != 1) { |
|
406
|
0 |
65 |
MethodMeta* current_parsed_method = NUM2PTR(MethodMeta* , SvUV(*hv_fetchs(ctx->moddata, "Class::Plain/current_parsed_method", 0))); |
|
411
|
61 |
4 |
if (ctx->body) { |
|
412
|
18 |
43 |
if(current_parsed_method->is_common) { |
|
436
|
0 |
65 |
current_parsed_method = NUM2PTR(MethodMeta* , SvUV(tmpsv)); |
|
440
|
61 |
4 |
if(ctx->cv) { |
|
444
|
62 |
3 |
if(ctx->name && (ctx->actions & XS_PARSE_SUBLIKE_ACTION_INSTALL_SYMBOL)) { |
|
|
62 |
0 |
if(ctx->name && (ctx->actions & XS_PARSE_SUBLIKE_ACTION_INSTALL_SYMBOL)) { |
|
449
|
62 |
0 |
if (!ctx->body) { |
|
452
|
0 |
62 |
if (method->class->is_role) { |
|
458
|
0 |
0 |
sv_catpv(sv_source_code, SvPV_nolen(method->class->name)); |
|
461
|
0 |
0 |
sv_catpv(sv_source_code, SvPV_nolen(method->name)); |
|
466
|
0 |
0 |
Perl_eval_pv(aTHX_ SvPV_nolen(sv_source_code), 1); |
|
492
|
0 |
0 |
if(!PL_parser) { |