[PATCH] Refactoring to Sv*_set() macros - patch #2
[email protected] (Steve Peters) Thu, 7 Apr 2005 13:51:49 -0500
| Newsgroups | perl.perl5.porters,perl.ponie.dev |
|---|---|
| Message-ID | <[email protected]> |
--7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Attached is the second in a series of patches to migrate the Perl core to using the Sv*_set() macros. This patch converts assignments to SvIVX() to SVIV_set(). Please note that this patch does contain changes to various core modules as well as the code to in the Perl executable. I've currently held off on updating the module versions until these patches are completed. Also, Encode was turned up as a module to modify with these changes, but I will include that change in a separate email to the Encode maintainer. Questions, comments, and complaints are all appreciated. Steve Peters [email protected] --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="SvIVX_to_SvIV_set.patch" --- doio.c.orig Wed Apr 6 20:32:29 2005 +++ doio.c Wed Apr 6 20:54:56 2005 @@ -674,10 +674,10 @@ sv = *av_fetch(PL_fdpid,fd,TRUE); (void)SvUPGRADE(sv, SVt_IV); pid = SvIVX(sv); - SvIVX(sv) = 0; + SvIV_set(sv, 0); sv = *av_fetch(PL_fdpid,savefd,TRUE); (void)SvUPGRADE(sv, SVt_IV); - SvIVX(sv) = pid; + SvIV_set(sv, pid); UNLOCK_FDPID_MUTEX; } #endif --- ext/List/Util/Util.xs.orig Fri Feb 25 19:16:44 2005 +++ ext/List/Util/Util.xs Wed Apr 6 20:37:30 2005 @@ -364,7 +364,7 @@ } #endif else { - SvIVX(ST(0)) = SvIV(num); + SvIV_set(ST(0), SvIV(num)); SvIOK_on(ST(0)); } if(PL_tainting && (SvTAINTED(num) || SvTAINTED(str))) --- op.c.orig Tue Apr 5 10:22:35 2005 +++ op.c Wed Apr 6 21:04:37 2005 @@ -3444,7 +3444,7 @@ SV **svp = av_fetch(CopFILEAV(PL_curcop), (I32)CopLINE(cop), FALSE); if (svp && *svp != &PL_sv_undef ) { (void)SvIOK_on(*svp); - SvIVX(*svp) = PTR2IV(cop); + SvIV_set(*svp, PTR2IV(cop)); } } --- pp.c.orig Thu Mar 24 10:52:51 2005 +++ pp.c Thu Apr 7 10:31:14 2005 @@ -844,7 +844,7 @@ if (!SvREADONLY(TOPs) && SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MIN) { - --SvIVX(TOPs); + SvIV_set(TOPs, SvIVX(TOPs) - 1); SvFLAGS(TOPs) &= ~(SVp_NOK|SVp_POK); } else @@ -862,7 +862,7 @@ if (!SvREADONLY(TOPs) && SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MAX) { - ++SvIVX(TOPs); + SvIV_set(TOPs, SvIVX(TOPs) + 1); SvFLAGS(TOPs) &= ~(SVp_NOK|SVp_POK); } else @@ -884,7 +884,7 @@ if (!SvREADONLY(TOPs) && SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MIN) { - --SvIVX(TOPs); + SvIV_set(TOPs, SvIVX(TOPs) - 1); SvFLAGS(TOPs) &= ~(SVp_NOK|SVp_POK); } else --- pp_ctl.c.orig Tue Mar 29 04:08:10 2005 +++ pp_ctl.c Thu Apr 7 10:20:57 2005 @@ -2430,7 +2430,7 @@ (void)SvUPGRADE(sv, SVt_PVIV); (void)SvIOK_on(sv); SAVEIV(SvIVX(sv)); - SvIVX(sv) = PTR2IV(cv); /* Do it the quickest way */ + SvIV_set(sv, PTR2IV(cv)); /* Do it the quickest way */ } else { save_item(sv); gv_efullname3(sv, CvGV(cv), Nullch); --- pp_hot.c.orig Thu Mar 24 10:52:51 2005 +++ pp_hot.c Thu Apr 7 10:43:16 2005 @@ -315,7 +315,7 @@ if (!SvREADONLY(TOPs) && SvIOK_notUV(TOPs) && !SvNOK(TOPs) && !SvPOK(TOPs) && SvIVX(TOPs) != IV_MAX) { - ++SvIVX(TOPs); + SvIV_set(TOPs, SvIVX(TOPs) + 1); SvFLAGS(TOPs) &= ~(SVp_NOK|SVp_POK); } else /* Do all the PERL_PRESERVE_IVUV conditionals in sv_inc */ @@ -2594,7 +2594,7 @@ (void)SvUPGRADE(dbsv, SVt_PVIV); (void)SvIOK_on(dbsv); SAVEIV(SvIVX(dbsv)); - SvIVX(dbsv) = PTR2IV(cv); /* Do it the quickest way */ + SvIV_set(dbsv, PTR2IV(cv)); /* Do it the quickest way */ } if (CvXSUB(cv)) --- sv.c.orig Wed Apr 6 10:34:26 2005 +++ sv.c Thu Apr 7 10:17:44 2005 @@ -1898,7 +1898,7 @@ Perl_croak(aTHX_ "Can't upgrade to undef"); case SVt_IV: SvANY(sv) = new_XIV(); - SvIVX(sv) = iv; + SvIV_set(sv, iv); break; case SVt_NV: SvANY(sv) = new_XNV(); @@ -1919,7 +1919,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); if (SvNIOK(sv)) (void)SvIOK_on(sv); SvNOK_off(sv); @@ -1929,7 +1929,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; break; case SVt_PVMG: @@ -1937,7 +1937,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -1947,7 +1947,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -1968,7 +1968,7 @@ SvPVX(sv) = 0; AvMAX(sv) = -1; AvFILLp(sv) = -1; - SvIVX(sv) = 0; + SvIV_set(sv, 0); SvNVX(sv) = 0.0; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -1998,7 +1998,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -2008,7 +2008,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -2023,7 +2023,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -2037,7 +2037,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -2048,7 +2048,7 @@ SvPVX(sv) = pv; SvCUR(sv) = cur; SvLEN(sv) = len; - SvIVX(sv) = iv; + SvIV_set(sv, iv); SvNVX(sv) = nv; SvMAGIC(sv) = magic; SvSTASH(sv) = stash; @@ -2181,7 +2181,7 @@ OP_DESC(PL_op)); } (void)SvIOK_only(sv); /* validate number */ - SvIVX(sv) = i; + SvIV_set(sv, i); SvTAINT(sv); } @@ -2502,7 +2502,7 @@ if (SvNVX(sv) < (NV)IV_MIN) { (void)SvIOKp_on(sv); (void)SvNOK_on(sv); - SvIVX(sv) = IV_MIN; + SvIV_set(sv, IV_MIN); return IS_NUMBER_UNDERFLOW_IV; } if (SvNVX(sv) > (NV)UV_MAX) { @@ -2517,7 +2517,7 @@ /* Can't use strtol etc to convert this string. (See truth table in sv_2iv */ if (SvNVX(sv) <= (UV)IV_MAX) { - SvIVX(sv) = I_V(SvNVX(sv)); + SvIV_set(sv, I_V(SvNVX(sv))); if ((NV)(SvIVX(sv)) == SvNVX(sv)) { SvIOK_on(sv); /* Integer is precise. NOK, IOK */ } else { @@ -2625,7 +2625,7 @@ answer is the UV IV_MAX +1. Hence < ensures that dodgy boundary cases go to UV */ if (SvNVX(sv) < (NV)IV_MAX + 0.5) { - SvIVX(sv) = I_V(SvNVX(sv)); + SvIV_set(sv, I_V(SvNVX(sv))); if (SvNVX(sv) == (NV) SvIVX(sv) #ifndef NV_PRESERVES_UV && (((UV)1 << NV_PRESERVES_UV_BITS) > @@ -2726,7 +2726,7 @@ if (!(numtype & IS_NUMBER_NEG)) { /* positive */; if (value <= (UV)IV_MAX) { - SvIVX(sv) = (IV)value; + SvIV_set(sv, (IV)value); } else { SvUVX(sv) = value; SvIsUV_on(sv); @@ -2734,7 +2734,7 @@ } else { /* 2s complement assumption */ if (value <= (UV)IV_MIN) { - SvIVX(sv) = -(IV)value; + SvIV_set(sv, -(IV)value); } else { /* Too negative for an IV. This is a double upgrade, but I'm assuming it will be rare. */ @@ -2744,7 +2744,7 @@ SvIOK_off(sv); SvIOKp_on(sv); SvNVX(sv) = -(NV)value; - SvIVX(sv) = IV_MIN; + SvIV_set(sv, IV_MIN); } } } @@ -2773,7 +2773,7 @@ (void)SvIOKp_on(sv); (void)SvNOK_on(sv); if (SvNVX(sv) < (NV)IV_MAX + 0.5) { - SvIVX(sv) = I_V(SvNVX(sv)); + SvIV_set(sv, I_V(SvNVX(sv))); if ((NV)(SvIVX(sv)) == SvNVX(sv)) { SvIOK_on(sv); } else { @@ -2813,7 +2813,7 @@ /* Small enough to preserve all bits. */ (void)SvIOKp_on(sv); SvNOK_on(sv); - SvIVX(sv) = I_V(SvNVX(sv)); + SvIV_set(sv, I_V(SvNVX(sv))); if ((NV)(SvIVX(sv)) == SvNVX(sv)) SvIOK_on(sv); /* Assumption: first non-preserved integer is < IV_MAX, @@ -2930,7 +2930,7 @@ (void)SvIOKp_on(sv); /* Must do this first, to clear any SvOOK */ if (SvNVX(sv) < (NV)IV_MAX + 0.5) { - SvIVX(sv) = I_V(SvNVX(sv)); + SvIV_set(sv, I_V(SvNVX(sv))); if (SvNVX(sv) == (NV) SvIVX(sv) #ifndef NV_PRESERVES_UV && (((UV)1 << NV_PRESERVES_UV_BITS) > @@ -3027,7 +3027,7 @@ if (!(numtype & IS_NUMBER_NEG)) { /* positive */; if (value <= (UV)IV_MAX) { - SvIVX(sv) = (IV)value; + SvIV_set(sv, (IV)value); } else { /* it didn't overflow, and it was positive. */ SvUVX(sv) = value; @@ -3036,7 +3036,7 @@ } else { /* 2s complement assumption */ if (value <= (UV)IV_MIN) { - SvIVX(sv) = -(IV)value; + SvIV_set(sv, -(IV)value); } else { /* Too negative for an IV. This is a double upgrade, but I'm assuming it will be rare. */ @@ -3046,7 +3046,7 @@ SvIOK_off(sv); SvIOKp_on(sv); SvNVX(sv) = -(NV)value; - SvIVX(sv) = IV_MIN; + SvIV_set(sv, IV_MIN); } } } @@ -3071,7 +3071,7 @@ (void)SvIOKp_on(sv); (void)SvNOK_on(sv); if (SvNVX(sv) < (NV)IV_MAX + 0.5) { - SvIVX(sv) = I_V(SvNVX(sv)); + SvIV_set(sv, I_V(SvNVX(sv))); if ((NV)(SvIVX(sv)) == SvNVX(sv)) { SvIOK_on(sv); } else { @@ -3111,7 +3111,7 @@ /* Small enough to preserve all bits. */ (void)SvIOKp_on(sv); SvNOK_on(sv); - SvIVX(sv) = I_V(SvNVX(sv)); + SvIV_set(sv, I_V(SvNVX(sv))); if ((NV)(SvIVX(sv)) == SvNVX(sv)) SvIOK_on(sv); /* Assumption: first non-preserved integer is < IV_MAX, @@ -3277,9 +3277,9 @@ SvIOKp_on(sv); if (numtype & IS_NUMBER_NEG) { - SvIVX(sv) = -(IV)value; + SvIV_set(sv, -(IV)value); } else if (value <= (UV)IV_MAX) { - SvIVX(sv) = (IV)value; + SvIV_set(sv, (IV)value); } else { SvUVX(sv) = value; SvIsUV_on(sv); @@ -4209,7 +4209,7 @@ break; } (void)SvIOK_only(dstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); if (SvIsUV(sstr)) SvIsUV_on(dstr); if (SvTAINTED(sstr)) @@ -4505,7 +4505,7 @@ SvFLAGS(dstr) |= SVf_IOK; if (sflags & SVf_IVisUV) SvIsUV_on(dstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); } if (SvAMAGIC(sstr)) { SvAMAGIC_on(dstr); @@ -4648,7 +4648,7 @@ SvFLAGS(dstr) |= SVf_IOK; if (sflags & SVf_IVisUV) SvIsUV_on(dstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); } if (SvVOK(sstr)) { MAGIC *smg = mg_find(sstr,PERL_MAGIC_vstring); @@ -4667,7 +4667,7 @@ /* XXXX Do we want to set IsUV for IV(ROK)? Be extra safe... */ if (sflags & SVf_IVisUV) SvIsUV_on(dstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); if (sflags & SVp_NOK) { if (sflags & SVf_NOK) (void)SvNOK_on(dstr); @@ -5108,7 +5108,7 @@ Move(pvx,SvPVX(sv),len,char); *SvEND(sv) = '\0'; } - SvIVX(sv) = 0; + SvIV_set(sv, 0); /* Same SvOOK_on but SvOOK_on does a SvIOK_off and we do that anyway inside the SvNIOK_off */ @@ -5118,7 +5118,7 @@ SvLEN(sv) -= delta; SvCUR(sv) -= delta; SvPVX(sv) += delta; - SvIVX(sv) += delta; + SvIV_set(sv, SvIVX(sv) + delta); } /* sv_catpvn() is now a macro using Perl_sv_catpvn_flags(); @@ -7350,7 +7350,7 @@ sv_setuv(sv, (UV)IV_MAX + 1); else { (void)SvIOK_only(sv); - ++SvIVX(sv); + SvIV_set(sv, SvIVX(sv) + 1); } } return; @@ -7365,7 +7365,7 @@ if ((flags & SVTYPEMASK) < SVt_PVIV) sv_upgrade(sv, SVt_IV); (void)SvIOK_only(sv); - SvIVX(sv) = 1; + SvIV_set(sv, 1); return; } d = SvPVX(sv); @@ -7494,7 +7494,7 @@ if (SvIsUV(sv)) { if (SvUVX(sv) == 0) { (void)SvIOK_only(sv); - SvIVX(sv) = -1; + SvIV_set(sv, -1); } else { (void)SvIOK_only_UV(sv); @@ -7505,7 +7505,7 @@ sv_setnv(sv, (NV)IV_MIN - 1.0); else { (void)SvIOK_only(sv); - --SvIVX(sv); + SvIV_set(sv, SvIVX(sv) - 1); } } return; @@ -10790,7 +10790,7 @@ break; case SVt_IV: SvANY(dstr) = new_XIV(); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); break; case SVt_NV: SvANY(dstr) = new_XNV(); @@ -10810,14 +10810,14 @@ SvANY(dstr) = new_XPVIV(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); Perl_rvpv_dup(aTHX_ dstr, sstr, param); break; case SVt_PVNV: SvANY(dstr) = new_XPVNV(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); Perl_rvpv_dup(aTHX_ dstr, sstr, param); break; @@ -10825,7 +10825,7 @@ SvANY(dstr) = new_XPVMG(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -10835,7 +10835,7 @@ SvANY(dstr) = new_XPVBM(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -10848,7 +10848,7 @@ SvANY(dstr) = new_XPVLV(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -10880,7 +10880,7 @@ SvANY(dstr) = new_XPVGV(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -10896,7 +10896,7 @@ SvANY(dstr) = new_XPVIO(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -10938,7 +10938,7 @@ SvANY(dstr) = new_XPVAV(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -10975,7 +10975,7 @@ SvANY(dstr) = new_XPVHV(); SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -11015,7 +11015,7 @@ dup_pvcv: SvCUR(dstr) = SvCUR(sstr); SvLEN(dstr) = SvLEN(sstr); - SvIVX(dstr) = SvIVX(sstr); + SvIV_set(dstr, SvIVX(sstr)); SvNVX(dstr) = SvNVX(sstr); SvMAGIC(dstr) = mg_dup(SvMAGIC(sstr), param); SvSTASH(dstr) = hv_dup_inc(SvSTASH(sstr), param); @@ -11694,7 +11694,7 @@ SvPVX(&PL_sv_no) = SAVEPVN(PL_No, 0); SvCUR(&PL_sv_no) = 0; SvLEN(&PL_sv_no) = 1; - SvIVX(&PL_sv_no) = 0; + SvIV_set(&PL_sv_no, 0); SvNVX(&PL_sv_no) = 0; ptr_table_store(PL_ptr_table, &proto_perl->Isv_no, &PL_sv_no); @@ -11705,7 +11705,7 @@ SvPVX(&PL_sv_yes) = SAVEPVN(PL_Yes, 1); SvCUR(&PL_sv_yes) = 1; SvLEN(&PL_sv_yes) = 2; - SvIVX(&PL_sv_yes) = 1; + SvIV_set(&PL_sv_yes, 1); SvNVX(&PL_sv_yes) = 1; ptr_table_store(PL_ptr_table, &proto_perl->Isv_yes, &PL_sv_yes); --- ext/threads/threads.xs.orig Wed Apr 6 10:34:26 2005 +++ ext/threads/threads.xs Wed Apr 6 20:46:59 2005 @@ -205,7 +205,7 @@ ithread_mg_get(pTHX_ SV *sv, MAGIC *mg) { ithread *thread = (ithread *) mg->mg_ptr; - SvIVX(sv) = PTR2IV(thread); + SvIV_set(sv, PTR2IV(thread)); SvIOK_on(sv); return 0; } --- toke.c.orig Tue Apr 5 16:58:22 2005 +++ toke.c Thu Apr 7 10:41:36 2005 @@ -775,7 +775,7 @@ sv_upgrade(sv, SVt_PVMG); sv_setpvn(sv,PL_bufptr,PL_bufend-PL_bufptr); (void)SvIOK_on(sv); - SvIVX(sv) = 0; + SvIV_set(sv, 0); av_store(CopFILEAV(PL_curcop),(I32)CopLINE(PL_curcop),sv); } } @@ -2631,7 +2631,7 @@ sv_upgrade(sv, SVt_PVMG); sv_setsv(sv,PL_linestr); (void)SvIOK_on(sv); - SvIVX(sv) = 0; + SvIV_set(sv, 0); av_store(CopFILEAV(PL_curcop),(I32)CopLINE(PL_curcop),sv); } goto retry; @@ -2718,7 +2718,7 @@ sv_upgrade(sv, SVt_PVMG); sv_setsv(sv,PL_linestr); (void)SvIOK_on(sv); - SvIVX(sv) = 0; + SvIV_set(sv, 0); av_store(CopFILEAV(PL_curcop),(I32)CopLINE(PL_curcop),sv); } PL_bufend = SvPVX(PL_linestr) + SvCUR(PL_linestr); @@ -4990,7 +4990,7 @@ missingterm((char*)0); yylval.ival = OP_STRINGIFY; if (SvIVX(PL_lex_stuff) == '\'') - SvIVX(PL_lex_stuff) = 0; /* qq'$foo' should intepolate */ + SvIV_set(PL_lex_stuff, 0); /* qq'$foo' should intepolate */ TERM(sublex_start()); case KEY_qr: @@ -9494,11 +9494,11 @@ sv_upgrade(tmpstr, SVt_PVIV); if (term == '\'') { op_type = OP_CONST; - SvIVX(tmpstr) = -1; + SvIV_set(tmpstr, -1); } else if (term == '`') { op_type = OP_BACKTICK; - SvIVX(tmpstr) = '\\'; + SvIV_set(tmpstr, '\\'); } CLINE; @@ -9584,7 +9584,7 @@ sv_upgrade(sv, SVt_PVMG); sv_setsv(sv,PL_linestr); (void)SvIOK_on(sv); - SvIVX(sv) = 0; + SvIV_set(sv, 0); av_store(CopFILEAV(PL_curcop), (I32)CopLINE(PL_curcop),sv); } if (*s == term && memEQ(s,PL_tokenbuf,len)) { @@ -9870,7 +9870,7 @@ assuming. 79 is the SV's initial length. What a random number. */ sv = NEWSV(87,79); sv_upgrade(sv, SVt_PVIV); - SvIVX(sv) = termcode; + SvIV_set(sv, termcode); (void)SvPOK_only(sv); /* validate pointer */ /* move past delimiter and try to read a complete string */ @@ -10056,7 +10056,7 @@ sv_upgrade(sv, SVt_PVMG); sv_setsv(sv,PL_linestr); (void)SvIOK_on(sv); - SvIVX(sv) = 0; + SvIV_set(sv, 0); av_store(CopFILEAV(PL_curcop), (I32)CopLINE(PL_curcop), sv); } --- util.c.orig Tue Apr 5 16:58:22 2005 +++ util.c Wed Apr 6 20:51:59 2005 @@ -2026,7 +2026,7 @@ sv = *av_fetch(PL_fdpid,p[This],TRUE); UNLOCK_FDPID_MUTEX; (void)SvUPGRADE(sv,SVt_IV); - SvIVX(sv) = pid; + SvIV_set(sv, pid); PL_forkprocess = pid; /* If we managed to get status pipe check for exec fail */ if (did_pipes && pid > 0) { @@ -2179,7 +2179,7 @@ sv = *av_fetch(PL_fdpid,p[This],TRUE); UNLOCK_FDPID_MUTEX; (void)SvUPGRADE(sv,SVt_IV); - SvIVX(sv) = pid; + SvIV_set(sv, pid); PL_forkprocess = pid; if (did_pipes && pid > 0) { int errkid; @@ -2636,7 +2636,7 @@ sprintf(spid, "%"IVdf, (IV)pid); sv = *hv_fetch(PL_pidstatus,spid,strlen(spid),TRUE); (void)SvUPGRADE(sv,SVt_IV); - SvIVX(sv) = status; + SvIV_set(sv, status); return; } --7AUc2qLy4jB3hD7Z--