assloads of changes, apparently my previous commits failed
[p5sagit/Devel-Declare.git] / Declare.xs
index 6f07ed3..1cd3434 100644 (file)
@@ -8,7 +8,14 @@
 #include <stdio.h>
 #include <string.h>
 
+#ifndef Newx
+# define Newx(v,n,t) New(0,v,n,t)
+#endif /* !Newx */
+
+#if 1
 #define DD_HAS_TRAITS
+#endif
+
 #if 0
 #define DD_DEBUG
 #endif
@@ -296,8 +303,8 @@ OP* dd_pp_entereval(pTHX) {
 
 STATIC OP *dd_ck_entereval(pTHX_ OP *o) {
   o = dd_old_ck_entereval(aTHX_ o); /* let the original do its job */
-  o->op_flags |= OPf_SPECIAL;
-  o->op_ppaddr = dd_pp_entereval;
+  if (o->op_ppaddr == PL_ppaddr[OP_ENTEREVAL])
+    o->op_ppaddr = dd_pp_entereval;
   return o;
 }