Change 11970 by sky@sky-titanic on 2001/09/10 11:17:25
Apply INT2PTR with force to silence warnings from
PM_GETRE and friends. No more warnings with 64bit
IVs and 32bit pointers.
Affected files ...
... //depot/perl/op.c#441 edit
... //depot/perl/op.h#95 edit
... //depot/perl/perl.c#368 edit
Differences ...
==== //depot/perl/op.c#441 (text) ====
Index: perl/op.c
--- perl/op.c.~1~ Mon Sep 10 05:30:05 2001
+++ perl/op.c Mon Sep 10 05:30:05 2001
@@ -813,10 +813,10 @@
goto clear_pmop;
case OP_PUSHRE:
#ifdef USE_ITHREADS
- if ((PADOFFSET)cPMOPo->op_pmreplroot) {
+ if (INT2PTR(PADOFFSET, cPMOPo->op_pmreplroot)) {
if (PL_curpad) {
- GV *gv = (GV*)PL_curpad[(PADOFFSET)cPMOPo->op_pmreplroot];
- pad_swipe((PADOFFSET)cPMOPo->op_pmreplroot);
+ GV *gv = (GV*)PL_curpad[INT2PTR(PADOFFSET, cPMOPo->op_pmreplroot)];
+ pad_swipe(INT2PTR(PADOFFSET, cPMOPo->op_pmreplroot));
/* No GvIN_PAD_off(gv) here, because other references may still
* exist on the pad */
SvREFCNT_dec(gv);
@@ -3553,7 +3553,7 @@
else if (curop->op_type == OP_PUSHRE) {
if (((PMOP*)curop)->op_pmreplroot) {
#ifdef USE_ITHREADS
- GV *gv =
(GV*)PL_curpad[(PADOFFSET)((PMOP*)curop)->op_pmreplroot];
+ GV *gv =
+(GV*)PL_curpad[INT2PTR(PADOFFSET,((PMOP*)curop)->op_pmreplroot)];
#else
GV *gv = (GV*)((PMOP*)curop)->op_pmreplroot;
#endif
@@ -3583,7 +3583,7 @@
tmpop = ((UNOP*)left)->op_first;
if (tmpop->op_type == OP_GV && !pm->op_pmreplroot) {
#ifdef USE_ITHREADS
- pm->op_pmreplroot = (OP*)cPADOPx(tmpop)->op_padix;
+ pm->op_pmreplroot = INT2PTR(OP*, cPADOPx(tmpop)->op_padix);
cPADOPx(tmpop)->op_padix = 0; /* steal it */
#else
pm->op_pmreplroot = (OP*)cSVOPx(tmpop)->op_sv;
==== //depot/perl/op.h#95 (text) ====
Index: perl/op.h
--- perl/op.h.~1~ Mon Sep 10 05:30:05 2001
+++ perl/op.h Mon Sep 10 05:30:05 2001
@@ -250,8 +250,8 @@
};
#ifdef USE_ITHREADS
-#define PM_GETRE(o) ((REGEXP*)SvIVX(PL_regex_pad[(o)->op_pmoffset]))
-#define PM_SETRE(o,r) (sv_setiv(PL_regex_pad[(o)->op_pmoffset], (IV)r))
+#define PM_GETRE(o) (INT2PTR(REGEXP*,SvIVX(PL_regex_pad[(o)->op_pmoffset])))
+#define PM_SETRE(o,r) (sv_setiv(PL_regex_pad[(o)->op_pmoffset], PTR2IV(r)))
#define PM_GETRE_SAFE(o) (PL_regex_pad ? PM_GETRE(o) : (REGEXP*)0)
#define PM_SETRE_SAFE(o,r) if (PL_regex_pad) PM_SETRE(o,r)
#else
==== //depot/perl/perl.c#368 (text) ====
Index: perl/perl.c
--- perl/perl.c.~1~ Mon Sep 10 05:30:05 2001
+++ perl/perl.c Mon Sep 10 05:30:05 2001
@@ -470,7 +470,7 @@
while (i) {
SV *resv = ary[--i];
- REGEXP *re = (REGEXP *)SvIVX(resv);
+ REGEXP *re = INT2PTR(REGEXP *,SvIVX(resv));
if (SvFLAGS(resv) & SVf_BREAK) {
/* this is PL_reg_curpm, already freed
End of Patch.