newSVpvn_share __UNDEFINED__

/* Hint: newSVpvn_share * The SVs created by this function only mimic the behaviour of * shared PVs without really being shared. Only use if you know * what you're doing. */

#ifndef newSVpvn_share

#if { NEED newSVpvn_share }

SV * newSVpvn_share(pTHX_ const char *s, I32 len, U32 hash) { SV *sv; if (len < 0) len = -len; if (!hash) PERL_HASH(hash, (char*) s, len); sv = newSVpvn((char *) s, len); sv_upgrade(sv, SVt_PVIV); SvIVX(sv) = hash; SvREADONLY_on(sv); SvPOK_on(sv); return sv; }

#endif

#endif

__UNDEFINED__ SvSHARED_HASH(sv) (0 + SvUVX(sv))

#define NEED_newSVpvn_share

int newSVpvn_share() PREINIT: const char *s; SV *sv; STRLEN len; U32 hash; CODE: RETVAL = 0; s = "mhx"; len = 3; PERL_HASH(hash, (char *) s, len); sv = newSVpvn_share(s, len, 0); s = 0; RETVAL += strEQ(SvPV_nolen_const(sv), "mhx"); RETVAL += SvCUR(sv) == len; RETVAL += SvSHARED_HASH(sv) == hash; SvREFCNT_dec(sv); s = "foobar"; len = 6; PERL_HASH(hash, (char *) s, len); sv = newSVpvn_share(s, -(I32) len, hash); s = 0; RETVAL += strEQ(SvPV_nolen_const(sv), "foobar"); RETVAL += SvCUR(sv) == len; RETVAL += SvSHARED_HASH(sv) == hash; SvREFCNT_dec(sv); OUTPUT: RETVAL

is(&Devel::PPPort::newSVpvn_share(), 6);

5 POD Errors

The following errors were encountered while parsing the POD:

Around line 12:

Unknown directive: =provides

Around line 17:

Unknown directive: =implementation

Around line 51:

Unknown directive: =xsinit

Around line 55:

Unknown directive: =xsubs

Around line 88:

Unknown directive: =tests