From: Behdad Esfahbod Date: Tue, 18 Dec 2012 04:29:15 +0000 (-0500) Subject: [OTLayout] Limit alternate-location FeatureParams to 'size' feature X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ffd23cb47a61465d52a7aeebb9c1b676e7c9a7e;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [OTLayout] Limit alternate-location FeatureParams to 'size' feature --- diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index bff383a..e6018db 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -495,6 +495,9 @@ struct Feature * If sanitizing "failed" for the FeatureParams subtable, try it with the * alternative location. We would know sanitize "failed" if old value * of the offset was non-zero, but it's zeroed now. + * + * Only do this for the 'size' feature, since at the time of the faulty + * Adobe tools, only the 'size' feature had FeatureParams defined. */ Offset orig_offset = featureParams; @@ -504,7 +507,9 @@ struct Feature if (likely (!orig_offset)) return TRACE_RETURN (true); - if (featureParams == 0 && closure && closure->list_base && closure->list_base < this) + if (featureParams == 0 && closure && + closure->tag == HB_TAG ('s','i','z','e') && + closure->list_base && closure->list_base < this) { unsigned int new_offset_int = (unsigned int) orig_offset - ((char *) this - (char *) closure->list_base);