On Tue, Jan 25, 2005 at 02:00:35PM +1100, [EMAIL PROTECTED] wrote:
> I have isolated a case where perl is happy but D::C segfaults
The following patch should fix the problem:
=== Cover.xs
==================================================================
--- Cover.xs (revision 60)
+++ Cover.xs (revision 61)
@@ -783,8 +783,11 @@
* store more than one return op because a non collecting
* sub may call back to a collecting sub.
*/
- hv_fetch(Return_ops, get_key(PL_op->op_next), CH_SZ, 1);
- NDEB(D(L, "adding return op %p\n", PL_op->op_next));
+ if (PL_op->op_next)
+ {
+ hv_fetch(Return_ops, get_key(PL_op->op_next), CH_SZ, 1);
+ NDEB(D(L, "adding return op %p\n", PL_op->op_next));
+ }
}
if (!collecting_here)
I've checked that in to my development copy along with a test case based
on your failing example (I removed the rand part). If things are OK for
you I'll release a new version with this fix soon.
Thanks for the minimal test case. Bug fixes are so much easier with a
concise way to reproduce the problem.
--
Paul Johnson - [EMAIL PROTECTED]
http://www.pjcj.net