This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #121351] Remove non-doio.c uses of PL_statbuf
authorDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Sun, 17 Jan 2016 15:52:30 +0000 (15:52 +0000)
committerDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Mon, 25 Jan 2016 15:13:24 +0000 (15:13 +0000)
These are the last remaining uses outside the interwoven mess in
S_openn_cleanup, openn_setup, and their callers in doio.c.

ext/ODBM_File/ODBM_File.pm
ext/ODBM_File/ODBM_File.xs
os2/os2.c

index 958232c..dd92fd3 100644 (file)
@@ -7,7 +7,7 @@ require Tie::Hash;
 require XSLoader;
 
 our @ISA = qw(Tie::Hash);
-our $VERSION = "1.12";
+our $VERSION = "1.13";
 
 XSLoader::load();
 
index d1ece7f..57beaf9 100644 (file)
@@ -92,6 +92,7 @@ odbm_TIEHASH(dbtype, filename, flags, mode)
        {
            char *tmpbuf;
            void * dbp ;
+            Stat_t statbuf;
            dMY_CXT;
 
            if (dbmrefcnt++)
@@ -99,7 +100,7 @@ odbm_TIEHASH(dbtype, filename, flags, mode)
            Newx(tmpbuf, strlen(filename) + 5, char);
            SAVEFREEPV(tmpbuf);
            sprintf(tmpbuf,"%s.dir",filename);
-           if (stat(tmpbuf, &PL_statbuf) < 0) {
+            if (stat(tmpbuf, &statbuf) < 0) {
                if (flags & O_CREAT) {
                    if (mode < 0 || close(creat(tmpbuf,mode)) < 0)
                        croak("ODBM_File: Can't create %s", filename);
index 8c5e941..a4f5015 100644 (file)
--- a/os2/os2.c
+++ b/os2/os2.c
@@ -1140,6 +1140,7 @@ do_spawn_ve(pTHX_ SV *really, U32 flag, U32 execf, char *inicmd, U32 addflag)
                    if (!buf)
                        buf = "";       /* XXX Needed? */
                    if (!buf[0]) {      /* Empty... */
+                        struct stat statbuf;
                        PerlIO_close(file);
                        /* Special case: maybe from -Zexe build, so
                           there is an executable around (contrary to
@@ -1148,8 +1149,8 @@ do_spawn_ve(pTHX_ SV *really, U32 flag, U32 execf, char *inicmd, U32 addflag)
                           reached this place). */
                        sv_catpv(scrsv, ".exe");
                        PL_Argv[0] = scr = SvPV(scrsv, n_a);    /* Reload */
-                       if (PerlLIO_stat(scr,&PL_statbuf) >= 0
-                           && !S_ISDIR(PL_statbuf.st_mode)) {  /* Found */
+                        if (PerlLIO_stat(scr,&statbuf) >= 0
+                            && !S_ISDIR(statbuf.st_mode)) {    /* Found */
                                real_name = scr;
                                pass++;
                                goto reread;