summaryrefslogtreecommitdiff
path: root/perlvars.h
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2018-03-13 21:52:15 -0600
committerKarl Williamson <khw@cpan.org>2018-03-14 09:35:35 -0600
commit744ebf52f3e4ca5e41d9ce8bc68e10cae14592a0 (patch)
tree2a41d4ff70b04876f40f0e5b442f470465b5c476 /perlvars.h
parent32a62865ef662fce2b2250a7e0eca15861e7fe20 (diff)
downloadperl-744ebf52f3e4ca5e41d9ce8bc68e10cae14592a0.tar.gz
Make Unicode data structures global
These structures are read-only, use const C strings, and are truly global, so no need to have them be interpreter level. This saves duplicating and freeing them as threads come and go. In doing this, I noticed that not every one was properly being copied/deallocated, so this fixes some potential unreported bugs, and leaks.
Diffstat (limited to 'perlvars.h')
-rw-r--r--perlvars.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/perlvars.h b/perlvars.h
index ac97ebcd99..e3ded3c7ef 100644
--- a/perlvars.h
+++ b/perlvars.h
@@ -271,3 +271,27 @@ PERLVARA(G, hash_chars, (1+256) * sizeof(U32), unsigned char) /* perl.c and hv.h
#ifdef __VMS
PERLVAR(G, perllib_sep, char)
#endif
+
+PERLVAR(G, AboveLatin1, SV *)
+PERLVAR(G, Assigned_invlist, SV *)
+PERLVAR(G, GCB_invlist, SV *)
+PERLVAR(G, HasMultiCharFold, SV *)
+PERLVAR(G, Latin1, SV *)
+PERLVAR(G, LB_invlist, SV *)
+PERLVAR(G, NonL1NonFinalFold, SV *)
+PERLVAR(G, SB_invlist, SV *)
+PERLVAR(G, SCX_invlist, SV *)
+PERLVAR(G, UpperLatin1, SV *) /* Code points 128 - 255 */
+
+/* List of characters that participate in folds (except marks, etc in
+ * multi-char folds) */
+PERLVARI(G, utf8_foldable, SV *, NULL)
+
+PERLVAR(G, utf8_idcont, SV *)
+PERLVAR(G, utf8_idstart, SV *)
+PERLVAR(G, utf8_perl_idcont, SV *)
+PERLVAR(G, utf8_perl_idstart, SV *)
+PERLVAR(G, utf8_xidcont, SV *)
+PERLVAR(G, utf8_xidstart, SV *)
+PERLVAR(G, WB_invlist, SV *)
+PERLVARA(G, XPosix_ptrs, POSIX_CC_COUNT, SV *)