mktables: Use correct structure to look up data
authorKarl Williamson <khw@cpan.org>
Thu, 17 Mar 2016 21:25:09 +0000 (15:25 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 17 Mar 2016 22:13:49 +0000 (16:13 -0600)
There are two types of tables in mktables: Map tables map code points
to the values a property have for those code points; and match tables
which are booleans, give "does a code point match a given property
value?".  There are different data structures to encapsulate each.  This
code was using the wrong structure to look something up.  Usually this
failed, and a fall-back value was used instead.  When compiling an early
Unicode release, I discovered that there could be a conflict.

charclass_invlists.h
lib/unicore/mktables
regcharclass.h

index 40ab351..23cdf50 100644 (file)
@@ -87887,7 +87887,7 @@ static const U8 WB_table[19][19] = {
  * 1a0687fb9c6c4567e853913549df0944fe40821279a3e9cdaa6ab8679bc286fd lib/unicore/extracted/DLineBreak.txt
  * 40bcfed3ca727c19e1331f6c33806231d5f7eeeabd2e6a9e06a3740c85d0c250 lib/unicore/extracted/DNumType.txt
  * a18d502bad39d527ac5586d7bc93e29f565859e3bcc24ada627eff606d6f5fed lib/unicore/extracted/DNumValues.txt
- * 5dbee5ba64f6ba6da74242e1d45c9dff38c232cb813e5a38543508203182cf7a lib/unicore/mktables
+ * 54d39659357a7802eaf2b5f57254592b891b4c6e7a49dd17ff786fc5ec9cb321 lib/unicore/mktables
  * 462c9aaa608fb2014cd9649af1c5c009485c60b9c8b15b89401fdc10cf6161c6 lib/unicore/version
  * 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
  * 5774f77d07a81945b6a679ecce07ad90cdb334f3fb402ff63bdbecd2ec67da05 regen/mk_invlists.pl
index 6b6851f..d5e1f3d 100644 (file)
@@ -6993,7 +6993,7 @@ sub trace { return main::trace(@_); }
 
         # Convert the input to the standard equivalent, if any (won't have any
         # for $STRING properties)
-        my $standard = $self->_find_table_from_alias->{$map};
+        my $standard = $self->property->table($map);
         $map = $standard->name if defined $standard;
 
         # Warn if there already is a non-equivalent default map for this
index d04fce4..43e6236 100644 (file)
  * 1a0687fb9c6c4567e853913549df0944fe40821279a3e9cdaa6ab8679bc286fd lib/unicore/extracted/DLineBreak.txt
  * 40bcfed3ca727c19e1331f6c33806231d5f7eeeabd2e6a9e06a3740c85d0c250 lib/unicore/extracted/DNumType.txt
  * a18d502bad39d527ac5586d7bc93e29f565859e3bcc24ada627eff606d6f5fed lib/unicore/extracted/DNumValues.txt
- * 5dbee5ba64f6ba6da74242e1d45c9dff38c232cb813e5a38543508203182cf7a lib/unicore/mktables
+ * 54d39659357a7802eaf2b5f57254592b891b4c6e7a49dd17ff786fc5ec9cb321 lib/unicore/mktables
  * 462c9aaa608fb2014cd9649af1c5c009485c60b9c8b15b89401fdc10cf6161c6 lib/unicore/version
  * 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
  * d9c04ac46bdd81bb3e26519f2b8eb6242cb12337205add3f7cf092b0c58dccc4 regen/regcharclass.pl