summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pad.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/pad.c b/pad.c
index 1870ab6e7c..c569e18706 100644
--- a/pad.c
+++ b/pad.c
@@ -1923,10 +1923,12 @@ Perl_cv_clone(pTHX_ CV *proto)
assert(!CvUNIQUE(proto));
- /* Since cloneable anon subs can be nested, CvOUTSIDE may point
+ /* Anonymous subs have a weak CvOUTSIDE pointer, so its value is not
+ * reliable. The currently-running sub is always the one we need to
+ * close over.
+ * Note that in general for formats, CvOUTSIDE != find_runcv.
+ * Since formats may be nested inside closures, CvOUTSIDE may point
* to a prototype; we instead want the cloned parent who called us.
- * Note that in general for formats, CvOUTSIDE != find_runcv; formats
- * inside closures, however, only work if CvOUTSIDE == find_runcv.
*/
if (SvTYPE(proto) == SVt_PVCV)