summaryrefslogtreecommitdiff
path: root/intrpvar.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2009-05-20 08:30:48 +0200
committerNicholas Clark <nick@ccl4.org>2009-05-20 10:50:04 +0200
commitefa50c51e3301a2ca8be765fedfdae78eff1615b (patch)
treeef032fdb284883023b030a999bb925240c7d24be /intrpvar.h
parent869053c868a03539389422a7a28502818825a940 (diff)
downloadperl-efa50c51e3301a2ca8be765fedfdae78eff1615b.tar.gz
Replace run-time on-demand initialisation of PL_bitcount with a constant table.
(The table is 256 bytes; the run-time initialisation code is larger than this!) Adapt generate_uudmap.c to generate the initalisation block for PL_bitcount, writing the code to bitcount.h, using the same approach as uudmap.h. To preserve binary compatibility: for MULTIPLICITY: keep Ibitcount in the interpreter structure, but remove all the macros that access it. PL_bitcount is a new symbol in the object file, which won't clash with anything as that name wasn't used before. otherwise: keep PL_bitcount as a char *, but initialise it at compile time to a new constant array PL_bitcount array. Remove the code that attempts to Safefree() it at interpreter destruction time.
Diffstat (limited to 'intrpvar.h')
-rw-r--r--intrpvar.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/intrpvar.h b/intrpvar.h
index 504a056990..487576a8c9 100644
--- a/intrpvar.h
+++ b/intrpvar.h
@@ -533,7 +533,15 @@ PERLVARI(Iglob_index, int, 0)
PERLVAR(Iparser, yy_parser *) /* current parser state */
+#ifdef MULTIPLICITY
+/* For binary compatibility, keep the interpreter structure the same.
+ However, we no longer use this entry. */
PERLVAR(Ibitcount, char *)
+#else
+/* For binary compatibility, need to retain an extern char *PL_bitcount.
+ So make it point to the compile time generated array. */
+PERLVARI(Ibitcount, char *, (char *)PL_bitcount_array)
+#endif
/* Array of signal handlers, indexed by signal number, through which the C
signal handler dispatches. */