Explain an apparent bug reported by
[p5sagit/p5-mst-13.2.git] / sharedsv.c
index 1703257..db9b112 100644 (file)
 #define PERL_IN_SHAREDSV_C
 #include "perl.h"
 
+#ifdef USE_ITHREADS
+
 PerlInterpreter* sharedsv_space;
 perl_mutex sharedsv_space_mutex;
 
-#ifdef USE_ITHREADS
-
 /*
   Shared SV
 
@@ -171,7 +171,7 @@ Perl_sharedsv_thrcnt_dec(pTHX_ shared_sv* ssv)
         switch (SvTYPE(sv)) {
         case SVt_RV:
             if (SvROK(sv))
-            Perl_sharedsv_thrcnt_dec(aTHX_ (shared_sv *)SvIV(SvRV(sv)));
+            Perl_sharedsv_thrcnt_dec(aTHX_ INT2PTR(shared_sv *, SvIV(SvRV(sv))));
             break;
         case SVt_PVAV: {
             SV **src_ary  = AvARRAY((AV *)sv);
@@ -179,7 +179,7 @@ Perl_sharedsv_thrcnt_dec(pTHX_ shared_sv* ssv)
 
             while (items-- > 0) {
             if(SvTYPE(*src_ary))
-                Perl_sharedsv_thrcnt_dec(aTHX_ (shared_sv *)SvIV(*src_ary++));
+                Perl_sharedsv_thrcnt_dec(aTHX_ INT2PTR(shared_sv *, SvIV(*src_ary++)));
             }
             break;
         }
@@ -188,7 +188,7 @@ Perl_sharedsv_thrcnt_dec(pTHX_ shared_sv* ssv)
             (void)hv_iterinit((HV *)sv);
             while ((entry = hv_iternext((HV *)sv)))
                 Perl_sharedsv_thrcnt_dec(
-                    aTHX_ (shared_sv *)SvIV(hv_iterval((HV *)sv, entry))
+                    aTHX_ INT2PTR(shared_sv *, SvIV(hv_iterval((HV *)sv, entry)))
                 );
             break;
         }
@@ -198,4 +198,4 @@ Perl_sharedsv_thrcnt_dec(pTHX_ shared_sv* ssv)
     SHAREDSvRELEASE(ssv);
 }
 
-#endif
+#endif /* USE_ITHREADS */