This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PerlIO::via: fix compiler warning
[perl5.git] / ext / PerlIO-via / via.xs
index fd5234a..95ccb3a 100644 (file)
@@ -87,13 +87,18 @@ 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);
                if (gv) {
                    /* shamelessly stolen from IO::File's new_tmpfile() */
-                   hv_delete(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv), G_DISCARD);
+                   (void) hv_delete(GvSTASH(gv), GvNAME(gv), GvNAMELEN(gv), G_DISCARD);
                }
            }
            IoIFP(s->io) = PerlIONext(f);
@@ -155,7 +160,7 @@ PerlIOVia_pushed(pTHX_ PerlIO * f, const char *mode, SV * arg,
                    /* binmode() passes NULL - so find out what mode is */
                    mode = PerlIO_modestr(f,lmode);
                }
-               modesv = sv_2mortal(newSVpvn(mode, strlen(mode)));
+               modesv = newSVpvn_flags(mode, strlen(mode), SVs_TEMP);
                result = PerlIOVia_method(aTHX_ f, MYMethod(PUSHED), G_SCALAR,
                                     modesv, Nullsv);
                if (result) {
@@ -395,7 +400,7 @@ SSize_t
 PerlIOVia_unread(pTHX_ PerlIO * f, const void *vbuf, Size_t count)
 {
     PerlIOVia *s = PerlIOSelf(f, PerlIOVia);
-    SV *buf = sv_2mortal(newSVpvn((char *) vbuf, count));
+    SV *buf = newSVpvn_flags((char *) vbuf, count, SVs_TEMP);
     SV *result =
        PerlIOVia_method(aTHX_ f, MYMethod(UNREAD), G_SCALAR, buf, Nullsv);
     if (result)
@@ -536,6 +541,7 @@ void
 PerlIOVia_set_ptrcnt(pTHX_ PerlIO * f, STDCHAR * ptr, SSize_t cnt)
 {
     PerlIOVia *s = PerlIOSelf(f, PerlIOVia);
+    PERL_UNUSED_ARG(ptr);
     s->cnt = cnt;
 }
 
@@ -577,6 +583,8 @@ SV *
 PerlIOVia_getarg(pTHX_ PerlIO * f, CLONE_PARAMS * param, int flags)
 {
     PerlIOVia *s = PerlIOSelf(f, PerlIOVia);
+    PERL_UNUSED_ARG(param);
+    PERL_UNUSED_ARG(flags);
     return PerlIOVia_method(aTHX_ f, MYMethod(GETARG), G_SCALAR, Nullsv);
 }