Upgrade to Pod-Simple-3.04
[p5sagit/p5-mst-13.2.git] / pp.h
diff --git a/pp.h b/pp.h
index 21d3c9d..7992259 100644 (file)
--- a/pp.h
+++ b/pp.h
@@ -398,17 +398,17 @@ and C<PUSHu>.
 #define AMGf_unary     8
 
 #define tryAMAGICbinW_var(meth_enum,assign,set) STMT_START { \
-          if (PL_amagic_generation) { \
-           SV* tmpsv; \
-           SV* const right= *(sp); SV* const left= *(sp-1);\
-           if ((SvAMAGIC(left)||SvAMAGIC(right))&&\
-               (tmpsv=amagic_call(left, \
+           SV* const left = *(sp-1); \
+           SV* const right = *(sp); \
+           if ((SvAMAGIC(left)||SvAMAGIC(right))) {\
+               SV * const tmpsv = amagic_call(left, \
                                   right, \
                                   meth_enum, \
-                                  (assign)? AMGf_assign: 0))) {\
-              SPAGAIN; \
-              (void)POPs; set(tmpsv); RETURN; } \
-         } \
+                                  (assign)? AMGf_assign: 0); \
+               if (tmpsv) { \
+                   SPAGAIN; \
+                   (void)POPs; set(tmpsv); RETURN; } \
+               } \
        } STMT_END
 
 #define tryAMAGICbinW(meth,assign,set) \
@@ -426,7 +426,6 @@ and C<PUSHu>.
             amagic_call(left,right,CAT2(meth,_amg),AMGf_noright)
 
 #define tryAMAGICunW(meth,set,shift,ret) STMT_START { \
-          if (PL_amagic_generation) { \
            SV* tmpsv; \
            SV* arg= sp[shift]; \
           if(0) goto am_again;  /* shut up unused warning */ \
@@ -435,7 +434,6 @@ and C<PUSHu>.
                (tmpsv=AMG_CALLun(arg,meth))) {\
               SPAGAIN; if (shift) sp += shift; \
               set(tmpsv); ret; } \
-         } \
        } STMT_END
 
 #define FORCE_SETs(sv) STMT_START { sv_setsv(TARG, (sv)); SETTARG; } STMT_END