diff src/ftfont.c @ 99108:411ea0d5dade

(ftfont_otf_features): Fix previous change. (ftfont_otf_capability): Check FeatureList.FeatureCount before calling ftfont_otf_features.
author Kenichi Handa <handa@m17n.org>
date Fri, 24 Oct 2008 13:11:56 +0000
parents 22ff4ff011f4
children 9dae5597651b
line wrap: on
line diff
--- a/src/ftfont.c	Fri Oct 24 09:44:46 2008 +0000
+++ b/src/ftfont.c	Fri Oct 24 13:11:56 2008 +0000
@@ -1360,7 +1360,7 @@
 	  for (features = Qnil, k = otf_langsys->FeatureCount - 1; k >= 0; k--)
 	    {
 	      l = otf_langsys->FeatureIndex[k];
-	      if (l > gsub_gpos->FeatureList.FeatureCount)
+	      if (l >= gsub_gpos->FeatureList.FeatureCount)
 		continue;
 	      OTF_TAG_SYM (sym, gsub_gpos->FeatureList.Feature[l].FeatureTag);
 	      features = Fcons (sym, features);
@@ -1391,9 +1391,11 @@
   if (! otf)
     return Qnil;
   gsub_gpos = Fcons (Qnil, Qnil);
-  if (OTF_get_table (otf, "GSUB") == 0)
+  if (OTF_get_table (otf, "GSUB") == 0
+      && otf->gsub->FeatureList.FeatureCount > 0)
     XSETCAR (gsub_gpos, ftfont_otf_features (otf->gsub));
-  if (OTF_get_table (otf, "GPOS") == 0)
+  if (OTF_get_table (otf, "GPOS") == 0
+      && otf->gpos->FeatureList.FeatureCount > 0)
     XSETCDR (gsub_gpos, ftfont_otf_features (otf->gpos));
   return gsub_gpos;
 }