equal
deleted
inserted
replaced
162 HB_SCRIPT_TANGUT, |
162 HB_SCRIPT_TANGUT, |
163 HB_SCRIPT_MASARAM_GONDI, |
163 HB_SCRIPT_MASARAM_GONDI, |
164 HB_SCRIPT_NUSHU, |
164 HB_SCRIPT_NUSHU, |
165 HB_SCRIPT_SOYOMBO, |
165 HB_SCRIPT_SOYOMBO, |
166 HB_SCRIPT_ZANABAZAR_SQUARE, |
166 HB_SCRIPT_ZANABAZAR_SQUARE, |
|
167 HB_SCRIPT_DOGRA, |
|
168 HB_SCRIPT_GUNJALA_GONDI, |
|
169 HB_SCRIPT_HANIFI_ROHINGYA, |
|
170 HB_SCRIPT_MAKASAR, |
|
171 HB_SCRIPT_MEDEFAIDRIN, |
|
172 HB_SCRIPT_OLD_SOGDIAN, |
|
173 HB_SCRIPT_SOGDIAN, |
167 }; |
174 }; |
168 |
175 |
169 static hb_unicode_combining_class_t |
176 static hb_unicode_combining_class_t |
170 hb_ucdn_combining_class(hb_unicode_funcs_t *ufuncs HB_UNUSED, |
177 hb_ucdn_combining_class(hb_unicode_funcs_t *ufuncs HB_UNUSED, |
171 hb_codepoint_t unicode, |
178 hb_codepoint_t unicode, |
235 |
242 |
236 #ifdef HB_USE_ATEXIT |
243 #ifdef HB_USE_ATEXIT |
237 static |
244 static |
238 void free_static_ucdn_funcs (void) |
245 void free_static_ucdn_funcs (void) |
239 { |
246 { |
240 hb_unicode_funcs_destroy (static_ucdn_funcs); |
247 retry: |
|
248 hb_unicode_funcs_t *ucdn_funcs = (hb_unicode_funcs_t *) hb_atomic_ptr_get (&static_ucdn_funcs); |
|
249 if (!hb_atomic_ptr_cmpexch (&static_ucdn_funcs, ucdn_funcs, nullptr)) |
|
250 goto retry; |
|
251 |
|
252 hb_unicode_funcs_destroy (ucdn_funcs); |
241 } |
253 } |
242 #endif |
254 #endif |
243 |
255 |
244 extern "C" HB_INTERNAL |
256 extern "C" HB_INTERNAL |
245 hb_unicode_funcs_t * |
257 hb_unicode_funcs_t * |