Change 29136 by nicholas@nicholas-saigo on 2006/10/29 20:01:41
Integrate:
[ 26112]
Fix breakages that prevended -DPERL_PISN from compiling.
Affected files
//depot/maint-5.8/perl/handy.h#39 integrate
//depot/maint-5.8/perl/sv.h#61 integrate
Differences
//depot/maint-5.8/perl/handy.h#39 (text)
Index: perl/handy.h
perl/handy.h#38~29014~2006-10-14 09:42:04.000000000 -0700
perl/handy.h2006-10-29 12:01:41.000000000 -0800
@@ -707,7 +707,7 @@
#ifdef PERL_PISN
#define Safefree(d) \
- ((d) ? (void)(safefree(MEM_LG_FREE((Malloc_t)(d)))), Poison(&(d), 1, Malloc_t)) : (void) 0)
+ ((d) ? (void)(safefree(MEM_LG_FREE((Malloc_t)(d))), Poison(&(d), 1, Malloc_t)) : (void) 0)
#else
#define Safefree(d)safefree(MEM_LG_FREE((Malloc_t)(d)))
#endif
//depot/maint-5.8/perl/sv.h#61 (text)
Index: perl/sv.h
perl/sv.h#60~28159~2006-05-11 04:55:15.000000000 -0700
perl/sv.h2006-10-29 12:01:41.000000000 -0800
@@ -863,10 +863,17 @@
#define SvUVX(sv) ((XPVUV*) SvANY(sv))->xuv_uv
#define SvNVX(sv) ((XPVNV*)SvANY(sv))->xnv_nv
#define SvPVX(sv) ((XPV*) SvANY(sv))->xpv_pv
+#ifndef PERL_PISN
/* Given that these two are new, there can't be any existing code using them
* as LVALUEs */
-#define SvPVX_mutable(sv)(0 + SvPVX(sv))
-#define SvPVX_const(sv)((const char*) (0 + SvPVX(sv)))
+# define SvPVX_mutable(sv)(0 + SvPVX(sv))
+# define SvPVX_const(sv)((const char*) (0 + SvPVX(sv)))
+#else
+/* Except for the poison code, which uses & to scribble over the pointer after
+ free() is called. */
+# define SvPVX_mutable(sv)(SvPVX(sv))
+# define SvPVX_const(sv)((const char*) (SvPVX(sv)))
+#endif
#define SvCUR(sv) ((XPV*) SvANY(sv))->xpv_cur
#define SvLEN(sv) ((XPV*) SvANY(sv))->xpv_len
#define SvEND(sv)(((XPV*) SvANY(sv))->xpv_pv + ((XPV*)SvANY(sv))->xpv_cur)
End of Patch.