summaryrefslogtreecommitdiff
path: root/ext/Devel/DProf
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-10-30 18:37:41 +0000
committerNicholas Clark <nick@ccl4.org>2006-10-30 18:37:41 +0000
commit93fec93b7d98eb18b84317351ccfa1bbd271ec21 (patch)
treeecac29d964bda7063b5ad6c760e482c1597871db /ext/Devel/DProf
parentedb113cf5f89b7f57ad122b3821a9cf42cf08880 (diff)
downloadperl-93fec93b7d98eb18b84317351ccfa1bbd271ec21.tar.gz
Avoid Devel::DProf failing an assertion during global destruction.
p4raw-id: //depot/perl@29165
Diffstat (limited to 'ext/Devel/DProf')
-rw-r--r--ext/Devel/DProf/DProf.xs10
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/Devel/DProf/DProf.xs b/ext/Devel/DProf/DProf.xs
index 6ce8e5254a..57e0084bd7 100644
--- a/ext/Devel/DProf/DProf.xs
+++ b/ext/Devel/DProf/DProf.xs
@@ -370,9 +370,13 @@ prof_mark(pTHX_ opcode ptype)
CV * const cv = db_get_cv(aTHX_ Sub);
GV * const gv = CvGV(cv);
- pname = GvSTASH(gv) ? HvNAME_get(GvSTASH(gv)) : NULL;
- pname = pname ? pname : (char *) "(null)";
- gname = GvNAME(gv);
+ if (isGV_with_GP(gv)) {
+ pname = GvSTASH(gv) ? HvNAME_get(GvSTASH(gv)) : NULL;
+ pname = pname ? pname : (char *) "(null)";
+ gname = GvNAME(gv);
+ } else {
+ gname = pname = (char *) "(null)";
+ }
set_cv_key(aTHX_ cv, pname, gname);
svp = hv_fetch(g_cv_hash, SvPVX_const(g_key_hash), SvCUR(g_key_hash), TRUE);