diff options
-rw-r--r-- | sv.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -6734,7 +6734,7 @@ Perl_sv_2cv(pTHX_ SV *sv, HV **st, GV **gvp, I32 lref) CV *cv = Nullcv; if (!sv) - return *gvp = Nullgv, Nullcv; + return *st = NULL, *gvp = Nullgv, Nullcv; switch (SvTYPE(sv)) { case SVt_PVCV: *st = CvSTASH(sv); @@ -6742,6 +6742,7 @@ Perl_sv_2cv(pTHX_ SV *sv, HV **st, GV **gvp, I32 lref) return (CV*)sv; case SVt_PVHV: case SVt_PVAV: + *st = NULL; *gvp = Nullgv; return Nullcv; case SVt_PVGV: @@ -6773,8 +6774,10 @@ Perl_sv_2cv(pTHX_ SV *sv, HV **st, GV **gvp, I32 lref) else gv = gv_fetchsv(sv, lref, SVt_PVCV); *gvp = gv; - if (!gv) + if (!gv) { + *st = NULL; return Nullcv; + } *st = GvESTASH(gv); fix_gv: if (lref && !GvCVu(gv)) { |