GNOME Bugzilla – Bug 112433
indic-fc.c: Wrong properties used for GPOS
Last modified: 2004-12-22 21:47:04 UTC
In indic_engine_shape(), we pass the same 'tags' array to both calls to pango_ot_ruleset_shape(), however since the first call has changed the set of glyphs, the tags array is no longer correct for the second call, and even (in the case of inserted glyphs) might be too short for the glyph array. Probably the right solution here is to optionally modify indic_engine_shape() so that it returns a new array which is the properties as rearranged by the substitution procedure. A fix could be made here without changing the indic-ot.h interfaces (changing them in the 1.2 branch is a little bad), by using log_clusters[] as described in the note in the comments for bug 111166.
Created attachment 16920 [details] [review] Proposed patch (against head)
I've attached a patch that I believe should fix the problem ... it works for me in *very* limited testing. (Some Devanagari examples still display, apparently correctly, without crashing.)
I've applied my patch, we'll hope that nothing breaks. Thu May 29 18:49:00 2003 Owen Taylor <otaylor@redhat.com> * modules/indic/indic-{xft,ft2}.c: Use the correct tags at the GPOS stage, taking into account changes during the GSUB stage. (#112433)
Turned out that I never committed this to HEAD; fixed now.