Use PL_statusvalue directly, instead of useing $?
gfx [Sat, 27 Mar 2010 06:23:25 +0000 (15:23 +0900)]
xs-src/Mouse.xs

index 955ab2f..2538ed4 100644 (file)
@@ -717,12 +717,9 @@ CODE:
 
     len      = AvFILLp(demolishall) + 1;
     if(len > 0){
-        GV* const statusvalue = gv_fetchpvs("?", 0, SVt_PV);
+        SAVEI32(PL_statusvalue);
+        PL_statusvalue = 0;
 
-        if(statusvalue){ /* it can be NULL */
-            SAVESPTR(GvSV(statusvalue)); /* local $? */
-            GvSV(statusvalue) = sv_newmortal();
-        }
         SAVESPTR(ERRSV); /* local $@ */
         ERRSV = sv_newmortal();