diff options
author | Nicholas Clark <nick@ccl4.org> | 2005-09-18 23:40:46 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2005-09-18 23:40:46 +0000 |
commit | 26ab6a78adda605ad55978d97dd5c8d4b282375a (patch) | |
tree | 457f838a5179bec270deb8c03ab79114c56df0bd /toke.c | |
parent | 5f2f4dbeb153fb32f97b9eec41efcf5c3e2f2a81 (diff) | |
download | perl-26ab6a78adda605ad55978d97dd5c8d4b282375a.tar.gz |
Integrate the API from:
[ 24526]
Move hv_name, hv_eiter and hv_riter into a new aux structure.
Provide (more efficient) _get and _set macros.
Adjust the core to use them.
[ 25475]
It looks like the only way to reliably make Perl_hv_name_set a pure
macro in 5.8.x is to make it available as hv_name_set.
[Otherwise when and where aTHX_ hv gets expanded to foo, hv causes
warnings or other games when Perl_hv_name_set() is a macro]
[ 25476]
Should have been embed.h, not proto.h, in 25475
p4raw-link: @25476 on //depot/perl: 840296de2f2802a7ba67f4bd1e075f58ec18c0f4
p4raw-link: @25475 on //depot/perl: 51a37f8016223ef5212790d4185d213114f2fd9b
p4raw-link: @24526 on //depot/perl: bfcb351493b9793586f4b514100d4f902a85f4fd
p4raw-id: //depot/maint-5.8/perl@25479
p4raw-integrated: from //depot/perl@25478 'edit in'
ext/Opcode/Opcode.xs (@25101..) 'merge in'
ext/threads/shared/shared.xs (@24248..)
p4raw-edited: from //depot/perl@24526 'edit in' hv.c hv.h sv.c
(@24525..)
p4raw-integrated: from //depot/perl@24526 'copy in'
ext/Devel/DProf/DProf.xs (@24170..) 'edit in' pp_sys.c
xsutils.c (@24445..) pp_hot.c (@24489..) mg.c perl.c (@24508..)
toke.c universal.c (@24509..) gv.c op.c pp.c (@24523..) dump.c
(@24525..) 'merge in' op.h (@24106..) ext/Data/Dumper/Dumper.xs
(@24271..) ext/PerlIO/via/via.xs (@24476..)
ext/Storable/Storable.xs (@24525..)
Diffstat (limited to 'toke.c')
-rw-r--r-- | toke.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -4292,7 +4292,7 @@ Perl_yylex(pTHX) case KEY___PACKAGE__: yylval.opval = (OP*)newSVOP(OP_CONST, 0, (PL_curstash - ? newSVpv(HvNAME(PL_curstash), 0) + ? newSVpv(HvNAME_get(PL_curstash), 0) : &PL_sv_undef)); TERM(THING); @@ -4304,7 +4304,7 @@ Perl_yylex(pTHX) if (PL_rsfp && (!PL_in_eval || PL_tokenbuf[2] == 'D')) { const char *pname = "main"; if (PL_tokenbuf[2] == 'D') - pname = HvNAME(PL_curstash ? PL_curstash : PL_defstash); + pname = HvNAME_get(PL_curstash ? PL_curstash : PL_defstash); gv = gv_fetchpv(Perl_form(aTHX_ "%s::DATA", pname), TRUE, SVt_PVIO); GvMULTI_on(gv); if (!GvIO(gv)) @@ -5490,7 +5490,7 @@ S_pending_ident(pTHX) /* might be an "our" variable" */ if (PAD_COMPNAME_FLAGS(tmp) & SVpad_OUR) { /* build ops for a bareword */ - SV *sym = newSVpv(HvNAME(PAD_COMPNAME_OURSTASH(tmp)), 0); + SV *sym = newSVpv(HvNAME_get(PAD_COMPNAME_OURSTASH(tmp)), 0); sv_catpvn(sym, "::", 2); sv_catpv(sym, PL_tokenbuf+1); yylval.opval = (OP*)newSVOP(OP_CONST, 0, sym); @@ -9678,7 +9678,7 @@ S_scan_inputsymbol(pTHX_ char *start) if ((tmp = pad_findmy(d)) != NOT_IN_PAD) { if (PAD_COMPNAME_FLAGS(tmp) & SVpad_OUR) { SV *sym = sv_2mortal( - newSVpv(HvNAME(PAD_COMPNAME_OURSTASH(tmp)),0)); + newSVpv(HvNAME_get(PAD_COMPNAME_OURSTASH(tmp)),0)); sv_catpvn(sym, "::", 2); sv_catpv(sym, d+1); d = SvPVX(sym); |