From 7f9aa7d32945332aeb1251c905307d22abfd4da5 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Sun, 25 Dec 2011 00:04:18 -0800 Subject: [perl #97956] PerlIO::get_layers: call get-magic --- universal.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'universal.c') diff --git a/universal.c b/universal.c index 2bcc740ee0..36800b8196 100644 --- a/universal.c +++ b/universal.c @@ -1004,14 +1004,10 @@ XS(XS_PerlIO_get_layers) } sv = POPs; - gv = MUTABLE_GV(sv); + gv = MAYBE_DEREF_GV(sv); - if (!isGV(sv)) { - if (SvROK(sv) && isGV(SvRV(sv))) - gv = MUTABLE_GV(SvRV(sv)); - else if (SvPOKp(sv)) - gv = gv_fetchsv(sv, 0, SVt_PVIO); - } + if (!gv && SvPOKp(sv)) + gv = gv_fetchsv_nomg(sv, 0, SVt_PVIO); if (gv && (io = GvIO(gv))) { AV* const av = PerlIO_get_layers(aTHX_ input ? -- cgit v1.2.1