summaryrefslogtreecommitdiff
path: root/globvar.sym
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-05-15 13:21:09 +0100
committerNicholas Clark <nick@ccl4.org>2011-06-11 10:39:59 +0200
commit6f83ef0e5a45c465f83de3304c5818ba44492250 (patch)
tree6b5a754cde4ee86baf633e6415f18b5fd8e721ff /globvar.sym
parent546efe9fbd6c3c651c39b369e97d0835230a0f9f (diff)
downloadperl-6f83ef0e5a45c465f83de3304c5818ba44492250.tar.gz
Create a lookup table for magic vtables from magic type, PL_magic_data.
Use it to eliminate the large switch statement in Perl_sv_magic(). As the table needs to be keyed on magic type, which is expressed as C character constants, the order depends on the compiler's character set. Frustratingly, EBCDIC variants don't agree on the code points for '~' and ']', which we use here. Instead of having (at least) 4 tables, get the local runtime to sort the table for us. Hence the regen script writes out the (unsorted) mg_raw.h, which generate_uudmap sorts to generate mg_data.h
Diffstat (limited to 'globvar.sym')
-rw-r--r--globvar.sym1
1 files changed, 1 insertions, 0 deletions
diff --git a/globvar.sym b/globvar.sym
index 49c2abf9a7..9bec86189b 100644
--- a/globvar.sym
+++ b/globvar.sym
@@ -13,6 +13,7 @@ fold_latin1
fold_locale
freq
keyword_plugin
+magic_data
magic_vtables
magic_vtable_names
memory_wrap