fix the fucking segfault
Matt S Trout [Tue, 3 Jun 2008 15:02:01 +0000 (15:02 +0000)]
Changes
Declare.xs

diff --git a/Changes b/Changes
index f3f8bc0..6df7ec1 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,6 @@
 Changes for Devel-Declare
 
+  - only mangle evals if o->op_ppaddr is actually PL_ppaddr[OP_ENTERVAL]
   - don't set OPf_SPECIAL on entereval ops, mistaken cargo cult from autobox
   - fix traits code to work on older 5.8.x perls
 
index ade77c8..1fa8897 100644 (file)
@@ -296,7 +296,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_ppaddr = dd_pp_entereval;
+  if (o->op_ppaddr == PL_ppaddr[OP_ENTEREVAL])
+    o->op_ppaddr = dd_pp_entereval;
   return o;
 }