#ifdef PERL_CORE
# define CVf_SLABBED 0x0800 /* Holds refcount on op slab */
#endif
-#define CVf_DYNFILE 0x1000 /* The filename isn't static */
+#define CVf_DYNFILE 0x1000 /* The filename is malloced */
#define CVf_AUTOLOAD 0x2000 /* SvPVX contains AUTOLOADed sub name */
#define CVf_HASEVAL 0x4000 /* contains string eval */
#define CVf_NAMED 0x8000 /* Has a name HEK */
? ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_gv_u.xcv_hek
: 0;
}
-/* This lowers the refernce count of the previous value, but does *not*
+
+/* helper for the common pattern:
+ CvNAMED(sv) ? CvNAME_HEK((CV *)sv) : GvNAME_HEK(CvGV(sv))
+*/
+#define CvGvNAME_HEK(sv) ( \
+ CvNAMED((CV*)sv) ? \
+ ((XPVCV*)MUTABLE_PTR(SvANY((SV*)sv)))->xcv_gv_u.xcv_hek\
+ : GvNAME_HEK(CvGV( (SV*) sv)) \
+ )
+
+/* This lowers the reference count of the previous value, but does *not*
increment the reference count of the new value. */
#define CvNAME_HEK_set(cv, hek) ( \
CvNAME_HEK((CV *)(cv)) \