summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2022-12-16 23:46:13 +0000
committerPaul Evans <leonerd@leonerd.org.uk>2022-12-17 11:58:33 +0000
commit63913cc7c64b09b652ff78a75a2630ebb5d6ad35 (patch)
treecd8ce317d1b43a152040318455b076683d868314 /ext
parent64a4165e5a14f8cc79aa10d0bd60054dd066226e (diff)
downloadperl-63913cc7c64b09b652ff78a75a2630ebb5d6ad35.tar.gz
File/Glob.xs: Idempotent setting of PL_opfreehook (fixes GH#20615)
Diffstat (limited to 'ext')
-rw-r--r--ext/File-Glob/Glob.pm2
-rw-r--r--ext/File-Glob/Glob.xs6
2 files changed, 5 insertions, 3 deletions
diff --git a/ext/File-Glob/Glob.pm b/ext/File-Glob/Glob.pm
index e228a189dd..dc0b3ac208 100644
--- a/ext/File-Glob/Glob.pm
+++ b/ext/File-Glob/Glob.pm
@@ -33,7 +33,7 @@ $EXPORT_TAGS{bsd_glob} = [@{$EXPORT_TAGS{glob}}];
our @EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob');
-our $VERSION = '1.38';
+our $VERSION = '1.39';
sub import {
require Exporter;
diff --git a/ext/File-Glob/Glob.xs b/ext/File-Glob/Glob.xs
index 0a4b568333..a65337e979 100644
--- a/ext/File-Glob/Glob.xs
+++ b/ext/File-Glob/Glob.xs
@@ -451,11 +451,13 @@ BOOT:
{
dMY_CXT;
MY_CXT.x_GLOB_ENTRIES = NULL;
- MY_CXT.x_GLOB_OLD_OPHOOK = PL_opfreehook;
#ifdef USE_ITHREADS
MY_CXT.interp = aTHX;
#endif
- PL_opfreehook = glob_ophook;
+ if(!MY_CXT.x_GLOB_OLD_OPHOOK) {
+ MY_CXT.x_GLOB_OLD_OPHOOK = PL_opfreehook;
+ PL_opfreehook = glob_ophook;
+ }
}
}