From 63d83481e2cd52a64f36a54ea50d29ca81aca410 Mon Sep 17 00:00:00 2001 From: David Mitchell Date: Mon, 18 Nov 2013 14:52:57 +0000 Subject: [PATCH 1/1] PerlIO::via: fix compiler warning In GV *gv = newGVgen(HvNAME_get(s->stash)) HvNAME_get() can return a null value (don't know whether it ever will in these circumstances), while newGVgen() expects a non-null arg. So calculate HvNAME_get() first, and bail if it's null. --- ext/PerlIO-via/via.pm | 2 +- ext/PerlIO-via/via.xs | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ext/PerlIO-via/via.pm b/ext/PerlIO-via/via.pm index 601be80..2fa37b1 100644 --- a/ext/PerlIO-via/via.pm +++ b/ext/PerlIO-via/via.pm @@ -1,5 +1,5 @@ package PerlIO::via; -our $VERSION = '0.12'; +our $VERSION = '0.13'; require XSLoader; XSLoader::load(); 1; diff --git a/ext/PerlIO-via/via.xs b/ext/PerlIO-via/via.xs index 56889bf..95ccb3a 100644 --- a/ext/PerlIO-via/via.xs +++ b/ext/PerlIO-via/via.xs @@ -87,7 +87,12 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags, } if (*PerlIONext(f)) { if (!s->fh) { - GV *gv = newGVgen(HvNAME_get(s->stash)); + GV *gv; + char *package = HvNAME_get(s->stash); + + if (!package) + return Nullsv; /* can this ever happen? */ + gv = newGVgen(package); GvIOp(gv) = newIO(); s->fh = newRV((SV *) gv); s->io = GvIOp(gv); -- 1.8.3.1