| line |
true |
false |
branch |
|
75
|
144 |
0 |
stashname = HvNAME(stash); |
|
|
144 |
0 |
stashname = HvNAME(stash); |
|
|
0 |
144 |
stashname = HvNAME(stash); |
|
|
0 |
0 |
stashname = HvNAME(stash); |
|
|
144 |
0 |
stashname = HvNAME(stash); |
|
|
0 |
144 |
stashname = HvNAME(stash); |
|
77
|
0 |
144 |
if (!stashname) |
|
81
|
0 |
144 |
if (level > 100) |
|
85
|
33 |
111 |
if(!cache) { |
|
91
|
24 |
87 |
if(cache_entry) |
|
98
|
100 |
20 |
isa = (gvp && (gv = *gvp) && gv != (GV*)&PL_sv_undef) ? GvAV(gv) : NULL; |
|
|
100 |
0 |
isa = (gvp && (gv = *gvp) && gv != (GV*)&PL_sv_undef) ? GvAV(gv) : NULL; |
|
|
100 |
0 |
isa = (gvp && (gv = *gvp) && gv != (GV*)&PL_sv_undef) ? GvAV(gv) : NULL; |
|
99
|
100 |
20 |
if(isa && AvFILLp(isa) >= 0) { |
|
|
82 |
18 |
if(isa && AvFILLp(isa) >= 0) { |
|
112
|
111 |
29 |
while(items--) { |
|
115
|
0 |
111 |
if(!isa_item_stash) { |
|
126
|
82 |
29 |
if(items == 0 && AvFILLp(seqs) == -1) { |
|
|
53 |
29 |
if(items == 0 && AvFILLp(seqs) == -1) { |
|
147
|
59 |
53 |
while(subrv_items--) { |
|
171
|
0 |
29 |
Newz(0xdead, heads, AvFILLp(seqs)+1, I32); |
|
180
|
87 |
29 |
while(seqs_items--) { |
|
183
|
77 |
10 |
if(seq_items > 0) { |
|
185
|
91 |
77 |
while(seq_items--) { |
|
190
|
91 |
0 |
if(he) { |
|
196
|
27 |
64 |
if(SvIOK(val)) { |
|
221
|
366 |
122 |
for(s = 0; s <= AvFILLp(seqs); s++) { |
|
225
|
126 |
240 |
if(!seq) continue; /* skip empty seqs */ |
|
228
|
120 |
120 |
if(!winner) { |
|
237
|
91 |
29 |
if((tail_entry = hv_fetch_ent(tails, cand, 0, 0)) |
|
238
|
91 |
0 |
&& (val = HeVAL(tail_entry)) |
|
239
|
27 |
64 |
&& (SvIVX(val) > 0)) |
|
246
|
178 |
35 |
if(!sv_cmp(seqhead, winner)) { |
|
254
|
87 |
91 |
if(new_head > AvFILLp(seq)) { |
|
275
|
29 |
93 |
if(!cand) { |
|
282
|
0 |
93 |
if(!winner) { |
|
289
|
0 |
0 |
for (i = 0; i <= av_len(retval); i++) { |
|
313
|
87 |
33 |
if(!made_mortal_cache) { |
|
315
|
0 |
87 |
if(!hv_store(cache, stashname, stashname_len, (SV*)retval, 0)) { |
|
326
|
124 |
23 |
for (i = startingblock; i >= 0; i--) { |
|
327
|
92 |
32 |
if(CxTYPE((PERL_CONTEXT*)(&cxstk[i])) == CXt_SUB) return i; |
|
366
|
1 |
26 |
if(sv_isobject(self)) |
|
373
|
27 |
0 |
hvname = HvNAME(selfstash); |
|
|
27 |
0 |
hvname = HvNAME(selfstash); |
|
|
0 |
27 |
hvname = HvNAME(selfstash); |
|
|
0 |
0 |
hvname = HvNAME(selfstash); |
|
|
27 |
0 |
hvname = HvNAME(selfstash); |
|
|
0 |
27 |
hvname = HvNAME(selfstash); |
|
374
|
0 |
27 |
if (!hvname) |
|
380
|
54 |
26 |
for(i = 0; i < 2; i++) { |
|
384
|
1 |
57 |
while (cxix < 0) { |
|
385
|
1 |
0 |
if(top_si->si_type == PERLSI_MAIN) |
|
392
|
57 |
0 |
if(CxTYPE((PERL_CONTEXT*)(&ccstack[cxix])) != CXt_SUB |
|
393
|
57 |
0 |
|| (PL_DBsub && GvCV(PL_DBsub) && ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub))) { |
|
|
0 |
57 |
|| (PL_DBsub && GvCV(PL_DBsub) && ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub))) { |
|
|
0 |
0 |
|| (PL_DBsub && GvCV(PL_DBsub) && ccstack[cxix].blk_sub.cv == GvCV(PL_DBsub))) { |
|
400
|
57 |
0 |
if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub)) { |
|
|
0 |
57 |
if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub)) { |
|
|
0 |
0 |
if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub)) { |
|
|
0 |
0 |
if (PL_DBsub && GvCV(PL_DBsub) && dbcxix >= 0 && ccstack[dbcxix].blk_sub.cv == GvCV(PL_DBsub)) { |
|
401
|
0 |
0 |
if(CxTYPE((PERL_CONTEXT*)(&ccstack[dbcxix])) != CXt_SUB) { |
|
410
|
0 |
57 |
if(!isGV(cvgv)) { |
|
420
|
57 |
0 |
if (SvPOK(sv)) { |
|
430
|
0 |
57 |
if(!subname) |
|
435
|
4 |
53 |
if(subname_len == 8 && strEQ(subname, "__ANON__")) { |
|
|
4 |
0 |
if(subname_len == 8 && strEQ(subname, "__ANON__")) { |
|
452
|
3 |
23 |
if((cache_entry = hv_fetch_ent(nmcache, cachekey, 0, 0))) { |
|
454
|
0 |
3 |
if(val == &PL_sv_undef) { |
|
455
|
0 |
0 |
if(throw_nomethod) |
|
459
|
0 |
3 |
XPUSHs(sv_2mortal(newRV_inc(val))); |
|
473
|
30 |
0 |
while (entries--) { |
|
476
|
23 |
7 |
if(sv_eq(linear_sv, stashname)) |
|
480
|
23 |
0 |
if(entries > 0) { |
|
484
|
38 |
4 |
while (entries--) { |
|
488
|
0 |
38 |
if(cc3_mro) { |
|
490
|
0 |
0 |
if(he_cc3_mro_class) { |
|
492
|
0 |
0 |
if(SvROK(cc3_mro_class_sv)) { |
|
495
|
0 |
0 |
if(svp_cc3_mro_class_methods) { |
|
497
|
0 |
0 |
if(SvROK(cc3_mro_class_methods_sv)) { |
|
499
|
0 |
0 |
if(hv_exists_ent(cc3_mro_class_methods, sub_sv, 0)) |
|
509
|
0 |
38 |
if (!cstash) { |
|
510
|
0 |
0 |
if (ckWARN(WARN_MISC)) |
|
519
|
19 |
19 |
if (!gvp) continue; |
|
524
|
0 |
19 |
if (SvTYPE(candidate) != SVt_PVGV) |
|
526
|
19 |
0 |
if (SvTYPE(candidate) == SVt_PVGV && (cand_cv = GvCV(candidate)) && !GvCVGEN(candidate)) { |
|
|
19 |
0 |
if (SvTYPE(candidate) == SVt_PVGV && (cand_cv = GvCV(candidate)) && !GvCVGEN(candidate)) { |
|
|
19 |
0 |
if (SvTYPE(candidate) == SVt_PVGV && (cand_cv = GvCV(candidate)) && !GvCVGEN(candidate)) { |
|
529
|
0 |
19 |
if (!hv_store_ent(nmcache, cachekey, (SV*)cand_cv, 0)) { |
|
532
|
0 |
19 |
XPUSHs(sv_2mortal(newRV_inc((SV*)cand_cv))); |
|
539
|
0 |
4 |
if (!hv_store_ent(nmcache, cachekey, &PL_sv_undef, 0)) { |
|
542
|
1 |
3 |
if(throw_nomethod) |
|
560
|
10 |
0 |
if(items < 1 || items > 2) |
|
|
0 |
10 |
if(items < 1 || items > 2) |
|
564
|
0 |
10 |
if(items == 2) cache = (HV*)SvRV(ST(1)); |
|
567
|
0 |
10 |
if(!class_stash) |
|
568
|
0 |
0 |
Perl_croak(aTHX_ "No such class: '%s'!", SvPV_nolen(classname)); |
|
577
|
45 |
10 |
while(res_items--) { |
|
579
|
0 |
45 |
XPUSHs(sv_2mortal(newSVsv(res_item))); |
|
594
|
0 |
0 |
XPUSHs(sv_2mortal(newSViv(PL_sub_generation))); |
|
618
|
0 |
0 |
if(items < 1 || items > 2) |
|
|
0 |
0 |
if(items < 1 || items > 2) |
|
623
|
0 |
0 |
if(!class_stash) |
|
624
|
0 |
0 |
Perl_croak(aTHX_ "No such class: '%s'!", SvPV_nolen(classname)); |
|
626
|
0 |
0 |
if(items == 2) cache = (HV*)SvRV(ST(1)); |
|
631
|
0 |
0 |
if(!hv_store(our_c3mro, "MRO", 3, (SV*)newRV_noinc((SV*)class_mro), 0)) { |
|
636
|
0 |
0 |
if(!hv_store_ent(hv, classname, (SV*)newRV_noinc((SV*)our_c3mro), 0)) { |
|
645
|
0 |
0 |
while(mroitems--) { |
|
649
|
0 |
0 |
if(!mro_stash) continue; |
|
651
|
0 |
0 |
if(!has_ovf) { |
|
653
|
0 |
0 |
if(ovfp) has_ovf = *ovfp; |
|
657
|
0 |
0 |
while((he = hv_iternext(mro_stash))) { |
|
666
|
0 |
0 |
if(hv_exists_ent(methods, mskey, 0)) continue; |
|
669
|
0 |
0 |
if(SvTYPE(msval) != SVt_PVGV || !(code = GvCVu(msval))) |
|
|
0 |
0 |
if(SvTYPE(msval) != SVt_PVGV || !(code = GvCVu(msval))) |
|
|
0 |
0 |
if(SvTYPE(msval) != SVt_PVGV || !(code = GvCVu(msval))) |
|
672
|
0 |
0 |
if((ourent = hv_fetch_ent(class_stash, mskey, 0, 0))) { |
|
674
|
0 |
0 |
if(val && SvTYPE(val) == SVt_PVGV && GvCVu(val)) |
|
|
0 |
0 |
if(val && SvTYPE(val) == SVt_PVGV && GvCVu(val)) |
|
|
0 |
0 |
if(val && SvTYPE(val) == SVt_PVGV && GvCVu(val)) |
|
|
0 |
0 |
if(val && SvTYPE(val) == SVt_PVGV && GvCVu(val)) |
|
682
|
0 |
0 |
if( !hv_store(meth_hash, "orig", 4, orig, 0) |
|
683
|
0 |
0 |
|| !hv_store(meth_hash, "code", 4, newRV_inc((SV*)code), 0) |
|
684
|
0 |
0 |
|| !hv_store_ent(methods, mskey, newRV_noinc((SV*)meth_hash), 0) ) { |
|
690
|
0 |
0 |
if(!hv_store(our_c3mro, "methods", 7, newRV_noinc((SV*)methods), 0)) { |
|
693
|
0 |
0 |
if(has_ovf) { |
|
694
|
0 |
0 |
if(!hv_store(our_c3mro, "has_overload_fallback", 21, SvREFCNT_inc(has_ovf), 0)) { |