Branch Coverage

/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux/XS/Framework.x/i/xs/Stash.h
Criterion Covered Total %
branch 30 90 33.3


line true false branch
49 3 0 Stash (HV* sv, bool policy = INCREMENT) : Hash(sv, policy) { _validate(); }
52 13 0 *this = gv_stashpvn(package.data(), package.length(), flags);
13 0 *this = gv_stashpvn(package.data(), package.length(), flags);
120 0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
0 0 string_view name () const { return string_view(HvNAME(sv), HvNAMELEN(sv)); }
121 0 13 HEK* name_hek () const { return HvNAME_HEK_NN((HV*)sv); }
122 13 0 const Simple& name_sv () const { if (!_name_sv) _name_sv = Simple::shared(name_hek()); return _name_sv; }
123 3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
0 3 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
0 3 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
0 3 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
0 3 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
3 0 string_view effective_name () const { return string_view(HvENAME(sv), HvENAMELEN(sv)); }
144 13 0 GV* gv = gv_fetchmeth_pvn((HV*)sv, name.data(), name.length(), 0, 0);
145 13 0 return gv ? Sub(GvCV(gv)) : Sub();
13 0 return gv ? Sub(GvCV(gv)) : Sub();
156 0 13 if (!ret) _throw_nomethod(name);
0 0 if (!ret) _throw_nomethod(name);
177 10 0 template Sub::call_t call (string_view name, A&&...args) const { return method_strict(name).call(name_sv(), std::forward(args)...); }
3 0 template Sub::call_t call (string_view name, A&&...args) const { return method_strict(name).call(name_sv(), std::forward(args)...); }
205 0 16 if (!sv) return;
206 16 0 if (HvNAME(sv)) return;
16 0 if (HvNAME(sv)) return;
0 16 if (HvNAME(sv)) return;
16 0 if (HvNAME(sv)) return;
0 16 if (HvNAME(sv)) return;
16 0 if (HvNAME(sv)) return;
207 0 0 if (is_undef()) return reset();
209 0 0 throw std::invalid_argument("SV is not a Stash or Stash reference");