File Coverage

xs/Closure.xs
Criterion Covered Total %
statement 8 11 72.7
branch 6 12 50.0
condition n/a
subroutine n/a
pod n/a
total 14 23 60.8


line stmt bran cond sub pod time code
1             MODULE = FFI::Platypus PACKAGE = FFI::Platypus::Closure
2              
3             void
4             _sticky(self)
5             SV *self
6             CODE:
7 1 50         if(sv_isobject(self) && sv_derived_from(self, "FFI::Platypus::Closure"))
    50          
8             {
9 1           SvREFCNT_inc_simple_void_NN(SvRV(self));
10 1           SvREFCNT_inc_simple_void_NN(SvRV(self));
11             }
12             else
13 0           croak("object is not a closure");
14              
15             void
16             _unstick(self)
17             SV *self
18             CODE:
19 1 50         if(sv_isobject(self) && sv_derived_from(self, "FFI::Platypus::Closure"))
    50          
20             {
21 1           SvREFCNT_dec(SvRV(self));
22 1           SvREFCNT_dec(SvRV(self));
23             }
24             else
25 0           croak("object is not a closure");
26              
27              
28             U32
29             _svrefcnt(self)
30             SV *self
31             CODE:
32             /* used in test only */
33 4 50         if(sv_isobject(self) && sv_derived_from(self, "FFI::Platypus::Closure"))
    50          
34             {
35 4           RETVAL = SvREFCNT(SvRV(self));
36             }
37             else
38 0           croak("object is not a closure");
39             OUTPUT:
40             RETVAL