1 ################################################################################
5 ## $Date: 2009/01/18 14:10:52 +0100 $
7 ################################################################################
9 ## Version 3.x, Copyright (C) 2004-2009, Marcus Holland-Moritz.
10 ## Version 2.x, Copyright (C) 2001, Paul Marquess.
11 ## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
13 ## This program is free software; you can redistribute it and/or
14 ## modify it under the same terms as Perl itself.
16 ################################################################################
25 #ifndef newSVpvn_share
27 #if { NEED newSVpvn_share }
30 newSVpvn_share(pTHX_ const char *src, I32 len, U32 hash)
36 PERL_HASH(hash, (char*) src, len);
37 sv = newSVpvn((char *) src, len);
38 sv_upgrade(sv, SVt_PVIV);
49 __UNDEFINED__ SvSHARED_HASH(sv) (0 + SvUVX(sv))
53 #define NEED_newSVpvn_share
68 PERL_HASH(hash, (char *) s, len);
69 sv = newSVpvn_share(s, len, 0);
71 RETVAL += strEQ(SvPV_nolen_const(sv), "mhx");
72 RETVAL += SvCUR(sv) == len;
73 RETVAL += SvSHARED_HASH(sv) == hash;
77 PERL_HASH(hash, (char *) s, len);
78 sv = newSVpvn_share(s, -(I32) len, hash);
80 RETVAL += strEQ(SvPV_nolen_const(sv), "foobar");
81 RETVAL += SvCUR(sv) == len;
82 RETVAL += SvSHARED_HASH(sv) == hash;
90 ok(&Devel::PPPort::newSVpvn_share(), 6);