This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: CvFILE corruption under ithreads
[perl5.git] / cv.h
diff --git a/cv.h b/cv.h
index 4ade508..7fa9400 100644 (file)
--- a/cv.h
+++ b/cv.h
@@ -55,6 +55,11 @@ Returns the stash of the CV.
 #define CvXSUBANY(sv)  ((XPVCV*)SvANY(sv))->xcv_xsubany
 #define CvGV(sv)       ((XPVCV*)SvANY(sv))->xcv_gv
 #define CvFILE(sv)     ((XPVCV*)SvANY(sv))->xcv_file
+#ifdef USE_ITHREADS
+#  define CvFILE_set_from_cop(sv, cop) (CvFILE(sv) = savepv(CopFILE(cop)))
+#else
+#  define CvFILE_set_from_cop(sv, cop) (CvFILE(sv) = CopFILE(cop))
+#endif
 #define CvFILEGV(sv)   (gv_fetchfile(CvFILE(sv))
 #define CvDEPTH(sv)    ((XPVCV*)SvANY(sv))->xcv_depth
 #define CvPADLIST(sv)  ((XPVCV*)SvANY(sv))->xcv_padlist