[icu] Fix for breakage after recent change
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 12 Aug 2018 23:29:41 +0000 (16:29 -0700)
committerBehdad Esfahbod <behdad@behdad.org>
Sun, 12 Aug 2018 23:29:41 +0000 (16:29 -0700)
src/hb-icu.cc

index 7b2c4d6..a2cd7dd 100644 (file)
@@ -352,6 +352,16 @@ static struct hb_icu_unicode_funcs_lazy_loader_t : hb_unicode_funcs_lazy_loader_
 {
   static inline hb_unicode_funcs_t *create (void)
   {
+#if U_ICU_VERSION_MAJOR_NUM >= 49
+  retry:
+    if (!normalizer.get ())
+    {
+      UErrorCode icu_err = U_ZERO_ERROR;
+      if (unlikely (!normalizer.cmpexch (nullptr, unorm2_getNFCInstance (&icu_err))))
+        goto retry;
+    }
+#endif
+
     hb_unicode_funcs_t *funcs = hb_unicode_funcs_create (nullptr);
 
 #define HB_UNICODE_FUNC_IMPLEMENT(name) \