cvs commit: ponie/perl pp_hot.c sv.c sv.h
[email protected] (Nicholas Clark) 19 Apr 2005 21:23:13 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 05/04/19 14:23:13
Modified: perl pp_hot.c sv.c sv.h
Log:
Force RVALUE macros, to ensure _set variants are used
Revision Changes Path
1.13 +0 -1 ponie/perl/pp_hot.c
Index: pp_hot.c
===================================================================
RCS file: /cvs/public/ponie/perl/pp_hot.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- pp_hot.c 19 Apr 2005 19:04:13 -0000 1.12
+++ pp_hot.c 19 Apr 2005 21:23:13 -0000 1.13
@@ -2951,7 +2951,6 @@
SvPV_set(sv, 0);
SvLEN_set(sv, 0);
SvCUR_set(sv, 0);
- SvLEN(sv) = SvCUR(sv) = 0;
}
switch (to_what) {
case OPpDEREF_SV:
1.62 +8 -8 ponie/perl/sv.c
Index: sv.c
===================================================================
RCS file: /cvs/public/ponie/perl/sv.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- sv.c 19 Apr 2005 19:04:13 -0000 1.61
+++ sv.c 19 Apr 2005 21:23:13 -0000 1.62
@@ -8914,17 +8914,17 @@
SvPV_set(sv, SvPVX(new_mg));
SvPV_set(new_mg, temp_pv);
temp_len = SvCUR(sv);
- SvCUR(sv) = SvCUR(new_mg);
- SvCUR(new_mg) = temp_len;
+ SvCUR_set(sv, SvCUR(new_mg));
+ SvCUR_set(new_mg, temp_len);
temp_len = SvLEN(sv);
- SvLEN(sv) = SvLEN(new_mg);
- SvLEN(new_mg) = temp_len;
+ SvLEN_set(sv, SvLEN(new_mg));
+ SvLEN_set(new_mg, temp_len);
temp_magic = SvMAGIC(sv);
- SvMAGIC(sv) = SvMAGIC(new_mg);
- SvMAGIC(new_mg) = temp_magic;
+ SvMAGIC_set(sv, SvMAGIC(new_mg));
+ SvMAGIC_set(new_mg, temp_magic);
temp_stash = SvSTASH(sv);
- SvSTASH(sv) = SvSTASH(new_mg);
- SvSTASH(new_mg) = temp_stash;
+ SvSTASH_set(sv, SvSTASH(new_mg));
+ SvSTASH_set(new_mg, temp_stash);
temp = SvFLAGS(sv);
SvFLAGS(sv) = (SvFLAGS(sv) & SVTYPEMASK) | (SvFLAGS(new_mg) & ~SVTYPEMASK);
1.66 +18 -10 ponie/perl/sv.h
Index: sv.h
===================================================================
RCS file: /cvs/public/ponie/perl/sv.h,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -r1.65 -r1.66
--- sv.h 19 Apr 2005 19:04:13 -0000 1.65
+++ sv.h 19 Apr 2005 21:23:13 -0000 1.66
@@ -863,32 +863,40 @@
#ifdef PERL_CORE
-#define SvRV(sv) (0 + * Perl_macro_SvRV(aTHX_ (SV*) (sv)))
+#define SvRV(sv) (0 + * Perl_macro_SvRV(aTHX_ (SV*) (sv)))
#define SvIVX(sv) (0 + * Perl_macro_SvIVX(aTHX_ (SV*) (sv)))
#define SvUVX(sv) (0 + * Perl_macro_SvUVX(aTHX_ (SV*) (sv)))
#define SvNVX(sv) (0.0 + * Perl_macro_SvNVX(aTHX_ (SV*) (sv)))
#define SvPVX(sv) (0 + * Perl_macro_SvPVX(aTHX_ (SV*) (sv)))
+#define SvCUR(sv) (0 + * Perl_macro_SvCUR(aTHX_ (SV*) (sv)))
+#define SvLEN(sv) (0 + * Perl_macro_SvLEN(aTHX_ (SV*) (sv)))
+#ifdef PERL_IN_SV_C
+/* Until Perl_sv_unmagic is migrated inside the PMC. */
+#define SvMAGIC(sv) (* Perl_macro_SvMAGIC(aTHX_ (SV*) (sv)))
#else
-#define SvRV(sv) (* Perl_macro_SvRV(aTHX_ (SV*) (sv)))
+#define SvMAGIC(sv) (0 + * Perl_macro_SvMAGIC(aTHX_ (SV*) (sv)))
+#endif
+#define SvSTASH(sv) (0 + * Perl_macro_SvSTASH(aTHX_ (SV*) (sv)))
+#else
+#define SvRV(sv) (* Perl_macro_SvRV(aTHX_ (SV*) (sv)))
#define SvIVX(sv) (* Perl_macro_SvIVX(aTHX_ (SV*) (sv)))
#define SvUVX(sv) (* Perl_macro_SvUVX(aTHX_ (SV*) (sv)))
#define SvNVX(sv) (* Perl_macro_SvNVX(aTHX_ (SV*) (sv)))
#define SvPVX(sv) (* Perl_macro_SvPVX(aTHX_ (SV*) (sv)))
+#define SvCUR(sv) (* Perl_macro_SvCUR(aTHX_ (SV*) (sv)))
+#define SvLEN(sv) (* Perl_macro_SvLEN(aTHX_ (SV*) (sv)))
+#define SvMAGIC(sv) (* Perl_macro_SvMAGIC(aTHX_ (SV*) (sv)))
+#define SvSTASH(sv) (* Perl_macro_SvSTASH(aTHX_ (SV*) (sv)))
#endif
#define SvRVx(sv) SvRV(sv)
#define SvIVXx(sv) SvIVX(sv)
#define SvUVXx(sv) SvUVX(sv)
#define SvNVXx(sv) SvNVX(sv)
-
#define SvPVXx(sv) SvPVX(sv)
-#define SvCUR(sv) ( * Perl_macro_SvCUR(aTHX_ (SV*) (sv)))
-#define SvLEN(sv) ( * Perl_macro_SvLEN(aTHX_ (SV*) (sv)))
#define SvLENx(sv) SvLEN(sv)
#define SvEND(sv)(SvPVX(sv) + SvCUR(sv))
#define SvENDx(sv) ((PL_Sv = (sv)), SvEND(PL_Sv))
-#define SvMAGIC(sv) (* Perl_macro_SvMAGIC(aTHX_ (SV*) (sv)))
-#define SvSTASH(sv) (* Perl_macro_SvSTASH(aTHX_ (SV*) (sv)))
/* Ask a scalar nicely to try to become an IV, if possible.
Not guaranteed to stay returning void */
@@ -919,13 +927,13 @@
(* Perl_macro_SvSTASH(aTHX_ (SV*) (sv)) = (val)); } STMT_END
#define SvCUR_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
- (SvCUR(sv) = (val)); } STMT_END
+ (* Perl_macro_SvCUR(aTHX_ (SV*) (sv)) = (val)); } STMT_END
#define SvLEN_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
- (SvLEN(sv) = (val)); } STMT_END
+ (* Perl_macro_SvLEN(aTHX_ (SV*) (sv)) = (val)); } STMT_END
#define SvEND_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
- (SvCUR(sv) = (val) - SvPVX(sv)); } STMT_END
+ (* Perl_macro_SvCUR(aTHX_ (SV*) (sv)) = (val) - SvPVX(sv)); } STMT_END
#define SvPV_renew(sv,n) \
STMT_START { SvLEN_set(sv, n); \