Internals
view release on metacpan or search on metacpan
Internals.xs view on Meta::CPAN
MODULE = Internals PACKAGE = Internals
PROTOTYPES: DISABLE
void
IsWriteProtected(ref)
SV * ref
PPCODE:
{
SV *obj;
if ( INTERNALS_REFERENCE(ref,obj) )
{
PUSHs(sv_2mortal(newSViv((IV)( SvREADONLY(obj) ? 1 : 0 ))));
}
else INTERNALS_NO_REFERENCE("IsWriteProtected");
}
void
SetReadOnly(ref)
SV * ref
PPCODE:
{
SV *obj;
if ( INTERNALS_REFERENCE(ref,obj) )
{
SvREADONLY_on(obj);
PUSHs(sv_mortalcopy(ref));
}
else INTERNALS_NO_REFERENCE("SetReadOnly");
}
void
SetReadWrite(ref)
SV * ref
PPCODE:
{
SV *obj;
if ( INTERNALS_REFERENCE(ref,obj) )
{
SvREADONLY_off(obj);
PUSHs(sv_mortalcopy(ref));
}
else INTERNALS_NO_REFERENCE("SetReadWrite");
}
void
GetRefCount(ref)
SV * ref
PPCODE:
{
SV *obj;
if ( INTERNALS_REFERENCE(ref,obj) )
{
PUSHs(sv_2mortal(newSViv((IV)( obj->sv_refcnt ))));
}
else INTERNALS_NO_REFERENCE("GetRefCount");
}
void
SetRefCount(ref,val)
SV * ref
SV * val
PPCODE:
{
SV *obj;
U32 cnt;
if ( INTERNALS_REFERENCE(ref,obj) )
{
if ( INTERNALS_NUMBER(val,cnt) )
{
obj->sv_refcnt = cnt;
}
( run in 1.453 second using v1.01-cache-2.11-cpan-5511b514fd6 )