📄 shared_pv
字号:
#################################################################################### $Revision: 3 $## $Author: mhx $## $Date: 2007/09/11 23:20:42 +0200 $###################################################################################### Version 3.x, Copyright (C) 2004-2007, Marcus Holland-Moritz.## Version 2.x, Copyright (C) 2001, Paul Marquess.## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.#### This program is free software; you can redistribute it and/or## modify it under the same terms as Perl itself.##################################################################################=providesnewSVpvn_share__UNDEFINED__=implementation#ifndef newSVpvn_share#if { NEED newSVpvn_share }SV *newSVpvn_share(pTHX_ const char *src, I32 len, U32 hash){ SV *sv; if (len < 0) len = -len; if (!hash) PERL_HASH(hash, (char*) src, len); sv = newSVpvn((char *) src, 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))=xsinit#define NEED_newSVpvn_share=xsubsintnewSVpvn_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=tests plan => 1ok(&Devel::PPPort::newSVpvn_share(), 6);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -