win32 fixes: more spurious CRs
[p5sagit/p5-mst-13.2.git] / op.h
diff --git a/op.h b/op.h
index 6c88fa5..eaf8499 100644 (file)
--- a/op.h
+++ b/op.h
@@ -245,8 +245,8 @@ struct pmop {
 #endif
 };
 
-#define PM_GETRE(o)     o->pmregexp
-#define PM_SETRE(o,r)   o->pmregexp = r
+#define PM_GETRE(o)     ((o)->op_pmregexp)
+#define PM_SETRE(o,r)   ((o)->op_pmregexp = (r))
 
 #define PMdf_USED      0x01            /* pm has been used once already */
 #define PMdf_TAINTED   0x02            /* pm compiled from tainted pattern */
@@ -277,7 +277,7 @@ struct pmop {
 
 #ifdef USE_ITHREADS
 #  define PmopSTASHPV(o)       ((o)->op_pmstashpv)
-#  define PmopSTASHPV_set(o,pv)        ((o)->op_pmstashpv = ((pv) ? savepv(pv) : Nullch))
+#  define PmopSTASHPV_set(o,pv)        (Safefree((o)->op_pmstashpv), (o)->op_pmstashpv = ((pv) ? savepv(pv) : Nullch))
 #  define PmopSTASH(o)         (PmopSTASHPV(o) \
                                 ? gv_stashpv(PmopSTASHPV(o),GV_ADD) : Nullhv)
 #  define PmopSTASH_set(o,hv)  PmopSTASHPV_set(o, (hv) ? HvNAME(hv) : Nullch)