Branch Coverage

Legba.xs
Criterion Covered Total %
branch 65 130 50.0


line true false branch
69 0 0 EXTEND(SP, 1);
88 9 213 if (needed > registry_size) {
90 0 9 if (new_size < 8) new_size = 8;
91 9 0 SvGROW(registry, new_size * sizeof(SV*));
9 0 SvGROW(registry, new_size * sizeof(SV*));
93 0 9 Zero(SLOT_ARRAY + registry_size, new_size - registry_size, SV*);
105 93 222 if (svp && SvIOK(*svp)) {
93 0 if (svp && SvIOK(*svp)) {
125 3 15 slotop->op_ppaddr = is_setter ? pp_slot_set : pp_slot_get;
141 0 0 return mg ? (SV*)mg->mg_ptr : NULL;
161 6 9477 if (!aop) return entersubop;
164 8802 0 for (cvop = aop; OpSIBLING(cvop); cvop = OpSIBLING(cvop)) {
8802 9477 for (cvop = aop; OpSIBLING(cvop); cvop = OpSIBLING(cvop)) {
8802 0 for (cvop = aop; OpSIBLING(cvop); cvop = OpSIBLING(cvop)) {
165 5758 3044 if (cvop != aop && cvop->op_type != OP_PUSHMARK && cvop->op_type != OP_NULL) {
5758 0 if (cvop != aop && cvop->op_type != OP_PUSHMARK && cvop->op_type != OP_NULL) {
5702 56 if (cvop != aop && cvop->op_type != OP_PUSHMARK && cvop->op_type != OP_NULL) {
172 3032 6445 if (has_args) return entersubop;
175 6445 0 if (cvop->op_type != OP_RV2CV) return entersubop;
176 0 0 if (!cUNOPx(cvop)->op_first) return entersubop;
177 0 0 if (cUNOPx(cvop)->op_first->op_type != OP_GV) return entersubop;
180 0 0 if (!gv || !GvCV(gv)) return entersubop;
0 0 if (!gv || !GvCV(gv)) return entersubop;
184 0 0 if (!slot) return entersubop;
209 10515 11599 if (items == 0) {
227 7 0 SvUPGRADE(registry, SVt_PV);
228 7 0 SvGROW(registry, 8 * sizeof(SV*));
7 0 SvGROW(registry, 8 * sizeof(SV*));
263 9 6 RETVAL = PTR2UV(op);
280 0 3 RETVAL = PTR2UV(op);
296 74 1 if (svp && SvIOK(*svp)) {
74 0 if (svp && SvIOK(*svp)) {
331 0 8 RETVAL = hv_exists(slot_index, n, len);
347 3 0 if (svp && SvIOK(*svp)) {
3 0 if (svp && SvIOK(*svp)) {
360 21 2 while ((entry = hv_iternext(slot_index))) {
362 0 21 mXPUSHp(key, len);
371 139 5 for (i = 0; i < next_slot; i++) {
372 139 0 if (SLOT_AT(i)) sv_setsv(SLOT_AT(i), &PL_sv_undef);
396 0 0 if (stash) {
398 0 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
0 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
0 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
0 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
0 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
431 0 7 RETVAL = PTR2UV(slot);
462 100 0 if (stash) {
463 100 0 pkg_name = HvNAME(stash);
100 0 pkg_name = HvNAME(stash);
0 100 pkg_name = HvNAME(stash);
0 0 pkg_name = HvNAME(stash);
100 0 pkg_name = HvNAME(stash);
0 100 pkg_name = HvNAME(stash);
464 100 0 pkg_len = HvNAMELEN(stash);
100 0 pkg_len = HvNAMELEN(stash);
0 100 pkg_len = HvNAMELEN(stash);
0 0 pkg_len = HvNAMELEN(stash);
100 0 pkg_len = HvNAMELEN(stash);
0 100 pkg_len = HvNAMELEN(stash);
472 209 100 for (i = 1; i < items; i++) {
477 1 208 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
1 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
1 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
1 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {
1 0 if (svp && isGV(*svp) && (existing = GvCV((GV*)*svp)) && CV_IS_SLOT_ACCESSOR(existing)) {