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.

Reply via email to