MODULE = FFI::Platypus PACKAGE = FFI::Platypus::Closure
void
_sticky(self)
SV *self
CODE:
if(sv_isobject(self) && sv_derived_from(self, "FFI::Platypus::Closure"))
{
SvREFCNT_inc_simple_void_NN(SvRV(self));
SvREFCNT_inc_simple_void_NN(SvRV(self));
}
else
croak("object is not a closure");
void
_unstick(self)
SV *self
CODE:
if(sv_isobject(self) && sv_derived_from(self, "FFI::Platypus::Closure"))
{
SvREFCNT_dec(SvRV(self));
SvREFCNT_dec(SvRV(self));
}
else
croak("object is not a closure");
U32
_svrefcnt(self)
SV *self
CODE:
/* used in test only */
if(sv_isobject(self) && sv_derived_from(self, "FFI::Platypus::Closure"))
{
RETVAL = SvREFCNT(SvRV(self));
}
else
croak("object is not a closure");
OUTPUT:
RETVAL