cleanup installation of utilities on win32
[p5sagit/p5-mst-13.2.git] / sv.h
diff --git a/sv.h b/sv.h
index e9614e6..ca3a2df 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -84,10 +84,10 @@ struct io {
        ++count;                                \
        MUTEX_UNLOCK(&svref_mutex);             \
      } STMT_END
-#    define ATOMIC_DEC_AND_TEST(res,count)     \
-       MUTEX_LOCK(&svref_mutex);               \
-       res = (--count == 0);                   \
-       MUTEX_UNLOCK(&svref_mutex);             \
+#    define ATOMIC_DEC_AND_TEST(res,count) STMT_START {        \
+       MUTEX_LOCK(&svref_mutex);                       \
+       res = (--count == 0);                           \
+       MUTEX_UNLOCK(&svref_mutex);                     \
      } STMT_END
 #  else
 #    define ATOMIC_INC(count) atomic_inc(&count)
@@ -199,6 +199,7 @@ struct xpvnv {
     double     xnv_nv;         /* numeric value, if any */
 };
 
+/* These structure must match the beginning of struct xpvhv in hv.h. */
 struct xpvmg {
     char *     xpv_pv;         /* pointer to malloced string */
     STRLEN     xpv_cur;        /* length of xpv_pv as a C string */
@@ -270,7 +271,7 @@ struct xpvfm {
     HV *       xcv_stash;
     OP *       xcv_start;
     OP *       xcv_root;
-    void      (*xcv_xsub)_((CV*));
+    void      (*xcv_xsub)_((CV* _CPERLproto));
     ANY                xcv_xsubany;
     GV *       xcv_gv;
     GV *       xcv_filegv;
@@ -637,7 +638,7 @@ struct xpvio {
 #  undef newRV_noinc
 #  define newRV_noinc(sv) ({SV *nsv=newRV((sv)); --SvREFCNT(SvRV(nsv)); nsv;})
 #else
-#  if defined(CRIPPLED_CC) || defined(USE_THREADS)
+#  if defined(CRIPPLED_CC) || defined(USE_THREADS) || defined(PERL_OBJECT)
 #  else
 #    undef newRV_noinc
 #    define newRV_noinc(sv)    ((Sv = newRV(sv)), --SvREFCNT(SvRV(Sv)), Sv)