⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sv_set

📁 source of perl for linux application,
💻
字号:
####################################################################################  $Revision: 5 $##  $Author: mhx $##  $Date: 2007/01/02 12:32:29 +0100 $######################################################################################  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.##################################################################################=provides__UNDEFINED__=implementation__UNDEFINED__ SvMAGIC_set(sv, val) \                STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \                (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END#if { VERSION < 5.9.3 }__UNDEFINED__ SvPVX_const(sv)     ((const char*) (0 + SvPVX(sv)))__UNDEFINED__ SvPVX_mutable(sv)   (0 + SvPVX(sv))__UNDEFINED__ SvRV_set(sv, val) \                STMT_START { assert(SvTYPE(sv) >=  SVt_RV); \                (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END#else__UNDEFINED__ SvPVX_const(sv)     ((const char*)((sv)->sv_u.svu_pv))__UNDEFINED__ SvPVX_mutable(sv)   ((sv)->sv_u.svu_pv)__UNDEFINED__ SvRV_set(sv, val) \                STMT_START { assert(SvTYPE(sv) >=  SVt_RV); \                ((sv)->sv_u.svu_rv = (val)); } STMT_END#endif__UNDEFINED__ SvSTASH_set(sv, val) \                STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \                (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END#if { VERSION < 5.004 }__UNDEFINED__ SvUV_set(sv, val) \                STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \                (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END#else__UNDEFINED__ SvUV_set(sv, val) \                STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \                (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END#endif=xsubsIVTestSvUV_set(sv, val)	SV *sv	UV val	CODE:		SvUV_set(sv, val);		RETVAL = SvUVX(sv) == val ? 42 : -1;	OUTPUT:		RETVALIVTestSvPVX_const(sv)        SV *sv        CODE:                RETVAL = strEQ(SvPVX_const(sv), "mhx") ? 43 : -1;        OUTPUT:                RETVALIVTestSvPVX_mutable(sv)        SV *sv        CODE:                RETVAL = strEQ(SvPVX_mutable(sv), "mhx") ? 44 : -1;        OUTPUT:                RETVALvoidTestSvSTASH_set(sv, name)        SV *sv	char *name        CODE:		sv = SvRV(sv);		SvREFCNT_dec(SvSTASH(sv));                SvSTASH_set(sv, (HV*) SvREFCNT_inc(gv_stashpv(name, 0)));=tests plan => 5my $foo = 5;ok(&Devel::PPPort::TestSvUV_set($foo, 12345), 42);ok(&Devel::PPPort::TestSvPVX_const("mhx"), 43);ok(&Devel::PPPort::TestSvPVX_mutable("mhx"), 44);my $bar = [];bless $bar, 'foo';ok($bar->x(), 'foobar');Devel::PPPort::TestSvSTASH_set($bar, 'bar');ok($bar->x(), 'hacker');package foo;sub x { 'foobar' }package bar;sub x { 'hacker' }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -