summaryrefslogtreecommitdiff
path: root/intrpvar.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2013-07-05 22:51:50 -0700
committerFather Chrysostomos <sprout@cpan.org>2013-08-05 02:23:28 -0700
commitc82ecf346a8512f22f25188e450d92938c245421 (patch)
tree4a8a85a9655bcb136136674dc3f838204bc9d202 /intrpvar.h
parent38be3d0038ef87b22af88f80db1fbeb0292ce53b (diff)
downloadperl-c82ecf346a8512f22f25188e450d92938c245421.tar.gz
[perl #117855] Store CopFILEGV in a pad under ithreads
This saves having to allocate a separate string buffer for every cop (control op; every statement has one). Under non-threaded builds, every cop has a pointer to the GV for that source file, namely *{"_<filename"}. Under threaded builds, the name of the GV used to be stored instead. Now we store an offset into the per-interpreter PL_filegvpad, which points to the GV. This makes no significant speed difference, but it reduces mem- ory usage.
Diffstat (limited to 'intrpvar.h')
-rw-r--r--intrpvar.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/intrpvar.h b/intrpvar.h
index 299ac0f7eb..ea37d41b5f 100644
--- a/intrpvar.h
+++ b/intrpvar.h
@@ -657,6 +657,9 @@ PERLVAR(I, regex_padav, AV *) /* All regex objects, indexed via the
PERLVAR(I, stashpad, HV **) /* for CopSTASH */
PERLVARI(I, stashpadmax, PADOFFSET, 64)
PERLVARI(I, stashpadix, PADOFFSET, 0)
+PERLVAR(I, filegvpad, GV **) /* for CopFILEGV */
+PERLVARI(I, filegvpadmax, PADOFFSET, 64)
+PERLVARI(I, filegvpadix, PADOFFSET, 0)
#endif
#ifdef USE_REENTRANT_API