File Coverage

src/xs/Simple.cc
Criterion Covered Total %
statement 21 21 100.0
branch 8 18 44.4
condition n/a
subroutine n/a
pod n/a
total 29 39 74.3


line stmt bran cond sub pod time code
1             #include
2              
3             namespace xs {
4              
5 36           const Simple Simple::undef(&PL_sv_undef);
6 36           const Simple Simple::yes(&PL_sv_yes);
7 36           const Simple Simple::no(&PL_sv_no);
8              
9 8           Simple Simple::format (const char*const pat, ...) {
10             va_list args;
11 8           va_start(args, pat);
12 8 50         SV* sv = vnewSVpvf(pat, &args);
13 8           va_end(args);
14 8 50         return Simple::noinc(sv);
15             }
16              
17 2           U32 Simple::hash () const {
18 2 100         if (sv) {
19 1 50         if (SvIsCOW_shared_hash(sv)) return SvSHARED_HASH(sv);
    0          
20             U32 h; STRLEN len;
21 1 50         const char* buf = SvPV_nomg(sv, len);
    0          
22 1           PERL_HASH(h, buf, len);
23 1           return h;
24 2           } else return 0;
25             }
26              
27 36           void Simple::__at_perl_destroy () {
28 36           const_cast(&undef)->reset();
29 36           const_cast(&yes)->reset();
30 36           const_cast(&no)->reset();
31 36           }
32              
33 144 50         }
    50