[PATCH] OPENJDK6-39: Handle fonts with the non-canonical processing flag set
Andrew Hughes
gnu.andrew at redhat.com
Wed Aug 6 17:54:06 UTC 2014
When changes were made to ICU in OpenJDK 6 & IcedTea 2.x for the July 2013
security update, they had to be modified from the original Oracle patches
as best as possible, so that the result would build. After the security
patches were published in OpenJDK 7 by Oracle, they included an additional
change "8008249: Sync ICU into JDK", which rebased the ICU used in OpenJDK 7
and explains the issues we found in applying 8001031 and 8009530 without
this change being in place first.
Although IcedTea 2.x received 8008249 from upstream OpenJDK 7, OpenJDK 6
did not. This led to the recent discovery of a bug in OpenJDK 6's font
processing, where it will throw an ArrayIndexOutOfBoundsException if
certain combinations of glyphs are used in a font which is marked
with the 'no canonical processing' feature flag. OpenJDK 6, at present,
does not honour this flag and so still attempts to perform canonical
processing with such fonts.
This webrev synchronises LETypes.h with the version in OpenJDK 7,
so that all the feature flags are now defined, and brings across
the check of LE_NoCanon_FEATURE_FLAG from OpenJDK 7 to LayoutEngine.cpp
in OpenJDK 6. Some differences remain in the latter file, but these
refer to entirely new files in the updated ICU. Rather than risk
instability by bringing across the new version of ICU in its entirety,
we bring across just the needed changes. Hence, why this bug is filed
under an OpenJDK 6 identifier rather than claiming to be a backport of
8008249.
Most of the changes in LETypes.h are rearrangement; the code already exists
in OpenJDK 6 but placement is slightly different due to how it was added
on an as-needed basis to please 8001031 and 8009530.
With these changes, OpenJDK 6 behaves in the same way as OpenJDK 7, and
doesn't throw an ArrayIndexOutOfBoundsException.
http://cr.openjdk.java.net/~andrew/openjdk6/oj6-39/webrev.01/
Ok to push?
--
Andrew :)
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
More information about the jdk6-dev
mailing list