[perf] Micro-optimize
authorBehdad Esfahbod <behdad@behdad.org>
Tue, 3 Nov 2015 01:58:12 +0000 (17:58 -0800)
committerBehdad Esfahbod <behdad@behdad.org>
Tue, 3 Nov 2015 02:03:38 +0000 (18:03 -0800)
src/hb-ot-layout-private.hh

index f1a101c..e13eaae 100644 (file)
@@ -223,19 +223,24 @@ enum {
 static inline void
 _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_unicode_funcs_t *unicode)
 {
-  unsigned int gen_cat = (unsigned int) unicode->general_category (info->codepoint);
+  unsigned int u = info->codepoint;
+  unsigned int gen_cat = (unsigned int) unicode->general_category (u);
   unsigned int props = gen_cat;
 
-  if (unlikely (unicode->is_default_ignorable (info->codepoint)))
+  if (u >= 0x80)
   {
-    props |=  UPROPS_MASK_IGNORABLE;
-    if (info->codepoint == 0x200Cu) props |= UPROPS_MASK_ZWNJ;
-    if (info->codepoint == 0x200Du) props |= UPROPS_MASK_ZWJ;
-  }
-  else if (unlikely (HB_UNICODE_GENERAL_CATEGORY_IS_MARK (gen_cat)))
-  {
-    props |= unicode->modified_combining_class (info->codepoint)<<8;
+    if (unlikely (unicode->is_default_ignorable (u)))
+    {
+      props |=  UPROPS_MASK_IGNORABLE;
+      if (u == 0x200Cu) props |= UPROPS_MASK_ZWNJ;
+      if (u == 0x200Du) props |= UPROPS_MASK_ZWJ;
+    }
+    else if (unlikely (HB_UNICODE_GENERAL_CATEGORY_IS_MARK (gen_cat)))
+    {
+      props |= unicode->modified_combining_class (info->codepoint)<<8;
+    }
   }
+
   info->unicode_props() = props;
 }