Change 34608 by [EMAIL PROTECTED] on 2008/10/27 21:23:04
Add MUTABLE_AV(), and remove (AV *) casts from headers.
Affected files ...
... //depot/perl/av.h#47 edit
... //depot/perl/handy.h#151 edit
... //depot/perl/pad.h#35 edit
... //depot/perl/thread.h#103 edit
Differences ...
==== //depot/perl/av.h#47 (text) ====
Index: perl/av.h
--- perl/av.h#46~34605~ 2008-10-27 13:25:46.000000000 -0700
+++ perl/av.h 2008-10-27 14:23:04.000000000 -0700
@@ -75,7 +75,7 @@
#define AvALLOC(av) (*((SV***)&((XPVAV*) SvANY(av))->xav_alloc))
#define AvMAX(av) ((XPVAV*) SvANY(av))->xav_max
#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill
-#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ (AV*)av))
+#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ MUTABLE_AV(av)))
#define AvREAL(av) (SvFLAGS(av) & SVpav_REAL)
#define AvREAL_on(av) (SvFLAGS(av) |= SVpav_REAL)
@@ -101,7 +101,7 @@
=cut
*/
-#define newAV() ((AV *)newSV_type(SVt_PVAV))
+#define newAV() MUTABLE_AV(newSV_type(SVt_PVAV))
/*
* Local variables:
==== //depot/perl/handy.h#151 (text) ====
Index: perl/handy.h
--- perl/handy.h#150~34605~ 2008-10-27 13:25:46.000000000 -0700
+++ perl/handy.h 2008-10-27 14:23:04.000000000 -0700
@@ -54,6 +54,7 @@
# define MUTABLE_PTR(p) ((void *) (p))
#endif
+#define MUTABLE_AV(p) ((AV *)MUTABLE_PTR(p))
#define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p))
/* XXX Configure ought to have a test for a boolean type, if I can
==== //depot/perl/pad.h#35 (text) ====
Index: perl/pad.h
--- perl/pad.h#34~34605~ 2008-10-27 13:25:46.000000000 -0700
+++ perl/pad.h 2008-10-27 14:23:04.000000000 -0700
@@ -210,7 +210,7 @@
#define PAD_BASE_SV(padlist, po) \
(AvARRAY(padlist)[1]) \
- ? AvARRAY((AV*)(AvARRAY(padlist)[1]))[po] : NULL;
+ ? AvARRAY(MUTABLE_AV((AvARRAY(padlist)[1])))[po] : NULL;
#define PAD_SET_CUR_NOSAVE(padlist,nth) \
@@ -258,7 +258,7 @@
*/
#define CX_CURPAD_SAVE(block) (block).oldcomppad = PL_comppad
-#define CX_CURPAD_SV(block,po) (AvARRAY((AV*)((block).oldcomppad))[po])
+#define CX_CURPAD_SV(block,po) (AvARRAY(MUTABLE_AV(((block).oldcomppad)))[po])
/*
@@ -337,7 +337,7 @@
* sub's CV or padlist. */
#define PAD_CLONE_VARS(proto_perl, param) \
- PL_comppad = (AV *) ptr_table_fetch(PL_ptr_table, proto_perl->Icomppad); \
+ PL_comppad = MUTABLE_AV(ptr_table_fetch(PL_ptr_table,
proto_perl->Icomppad)); \
PL_curpad = PL_comppad ? AvARRAY(PL_comppad) : NULL; \
PL_comppad_name = av_dup(proto_perl->Icomppad_name, param); \
PL_comppad_name_fill = proto_perl->Icomppad_name_fill; \
==== //depot/perl/thread.h#103 (text) ====
Index: perl/thread.h
--- perl/thread.h#102~32793~ 2008-01-01 09:18:13.000000000 -0800
+++ perl/thread.h 2008-10-27 14:23:04.000000000 -0700
@@ -156,7 +156,7 @@
#define THREAD_RET_CAST(x) ((any_t) x)
#define DETACH(t) cthread_detach(t->self)
-#define JOIN(t, avp) (*(avp) = (AV *)cthread_join(t->self))
+#define JOIN(t, avp) (*(avp) = MUTABLE_AV(cthread_join(t->self)))
#define PERL_SET_CONTEXT(t) cthread_set_data(cthread_self(), t)
#define PERL_GET_CONTEXT cthread_data(cthread_self())
End of Patch.