jpl tweak
[p5sagit/p5-mst-13.2.git] / pp_ctl.c
index 80cd803..c9afbb6 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
 
 #define DOCATCH(o) ((CATCH_GET == TRUE) ? docatch(o) : (o))
 
-#ifdef PERL_OBJECT
-#define CALLOP this->*PL_op
-#else
-#define CALLOP *PL_op
-#endif
-
 static I32 sortcv(pTHXo_ SV *a, SV *b);
 static I32 sv_ncmp(pTHXo_ SV *a, SV *b);
 static I32 sv_i_ncmp(pTHXo_ SV *a, SV *b);
@@ -229,12 +223,12 @@ Perl_rxres_save(pTHX_ void **rsp, REGEXP *rx)
        *rsp = (void*)p;
     }
 
-    *p++ = (UV)(RX_MATCH_COPIED(rx) ? rx->subbeg : Nullch);
+    *p++ = PTR2UV(RX_MATCH_COPIED(rx) ? rx->subbeg : Nullch);
     RX_MATCH_COPIED_off(rx);
 
     *p++ = rx->nparens;
 
-    *p++ = (UV)rx->subbeg;
+    *p++ = PTR2UV(rx->subbeg);
     *p++ = (UV)rx->sublen;
     for (i = 0; i <= rx->nparens; ++i) {
        *p++ = (UV)rx->startp[i];
@@ -255,7 +249,7 @@ Perl_rxres_restore(pTHX_ void **rsp, REGEXP *rx)
 
     rx->nparens = *p++;
 
-    rx->subbeg = (char*)(*p++);
+    rx->subbeg = INT2PTR(char*,*p++);
     rx->sublen = (I32)(*p++);
     for (i = 0; i <= rx->nparens; ++i) {
        rx->startp[i] = (I32)(*p++);
@@ -269,7 +263,7 @@ Perl_rxres_free(pTHX_ void **rsp)
     UV *p = (UV*)*rsp;
 
     if (p) {
-       Safefree((char*)(*p));
+       Safefree(INT2PTR(char*,*p));
        Safefree(p);
        *rsp = Null(void*);
     }
@@ -588,10 +582,10 @@ PP(pp_formline)
                RESTORE_NUMERIC_LOCAL();
 #if defined(USE_LONG_DOUBLE)
                if (arg & 256) {
-                   sprintf(t, "%#*.*Lf",
+                   sprintf(t, "%#*.*" PERL_PRIfldbl,
                            (int) fieldsize, (int) arg & 255, value);
                } else {
-                   sprintf(t, "%*.0Lf", (int) fieldsize, value);
+                   sprintf(t, "%*.0" PERL_PRIfldbl, (int) fieldsize, value);
                }
 #else
                if (arg & 256) {
@@ -1921,32 +1915,29 @@ S_dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit)
        *ops++ = cUNOPo->op_first;
        if (ops >= oplimit)
            Perl_croak(aTHX_ too_deep);
-       *ops = 0;
     }
+    *ops = 0;
     if (o->op_flags & OPf_KIDS) {
        dTHR;
        /* First try all the kids at this level, since that's likeliest. */
        for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) {
-           if ((kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE)
-               && kCOP->cop_label && strEQ(kCOP->cop_label, label))
-           {
+           if ((kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) &&
+                   kCOP->cop_label && strEQ(kCOP->cop_label, label))
                return kid;
-           }
        }
        for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling) {
            if (kid == PL_lastgotoprobe)
                continue;
-           if ((kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE)
-               && (ops == opstack || (ops[-1]->op_type != OP_NEXTSTATE
-                                      && ops[-1]->op_type != OP_DBSTATE)))
-           {
+           if ((kid->op_type == OP_NEXTSTATE || kid->op_type == OP_DBSTATE) &&
+               (ops == opstack ||
+                (ops[-1]->op_type != OP_NEXTSTATE &&
+                 ops[-1]->op_type != OP_DBSTATE)))
                *ops++ = kid;
-               *ops = 0;
-           }
            if (o = dofindlabel(kid, label, ops, oplimit))
                return o;
        }
     }
+    *ops = 0;
     return 0;
 }
 
@@ -2208,7 +2199,7 @@ PP(pp_goto)
                    CV *gotocv;
                    
                    if (PERLDB_SUB_NN) {
-                       SvIVX(sv) = (IV)cv; /* Already upgraded, saved */
+                       SvIVX(sv) = PTR2IV(cv); /* Already upgraded, saved */
                    } else {
                        save_item(sv);
                        gv_efullname3(sv, CvGV(cv), Nullch);
@@ -2307,7 +2298,7 @@ PP(pp_goto)
                if (PL_op->op_type == OP_ENTERITER)
                    DIE(aTHX_ "Can't \"goto\" into the middle of a foreach loop",
                        label);
-               (CALLOP->op_ppaddr)(aTHX);
+               CALL_FPTR(PL_op->op_ppaddr)(aTHX);
            }
            PL_op = oldop;
        }
@@ -2848,7 +2839,7 @@ PP(pp_require)
                                       save the gv to manage the lifespan of
                                       the pipe, but this didn't help. XXX */
                                    filter_child_proc = (GV *)arg;
-                                   SvREFCNT_inc(filter_child_proc);
+                                   (void)SvREFCNT_inc(filter_child_proc);
                                }
                                else {
                                    if (IoOFP(io) && IoOFP(io) != IoIFP(io)) {
@@ -2866,11 +2857,11 @@ PP(pp_require)
 
                        if (SvROK(arg) && SvTYPE(SvRV(arg)) == SVt_PVCV) {
                            filter_sub = arg;
-                           SvREFCNT_inc(filter_sub);
+                           (void)SvREFCNT_inc(filter_sub);
 
                            if (i < count) {
                                filter_state = SP[i];
-                               SvREFCNT_inc(filter_state);
+                               (void)SvREFCNT_inc(filter_state);
                            }
 
                            if (tryrsfp == 0) {