[ot-var] Use atomic int for cached-serial

This commit is contained in:
Behdad Esfahbod 2022-05-24 13:42:25 -06:00
parent 0919eaa6e8
commit 12fff976b6
1 changed files with 4 additions and 4 deletions

View File

@ -64,7 +64,7 @@ struct hb_ot_font_t
const hb_ot_face_t *ot_face; const hb_ot_face_t *ot_face;
/* h_advance caching */ /* h_advance caching */
mutable unsigned cached_coords_serial; mutable hb_atomic_int_t cached_coords_serial;
mutable hb_atomic_ptr_t<hb_advance_cache_t> advance_cache; mutable hb_atomic_ptr_t<hb_advance_cache_t> advance_cache;
}; };
@ -181,7 +181,7 @@ hb_ot_get_glyph_h_advances (hb_font_t* font, void* font_data,
hb_free (cache); hb_free (cache);
goto retry; goto retry;
} }
ot_font->cached_coords_serial = font->serial_coords; ot_font->cached_coords_serial.set_relaxed (font->serial_coords);
} }
} }
out: out:
@ -197,10 +197,10 @@ hb_ot_get_glyph_h_advances (hb_font_t* font, void* font_data,
} }
else else
{ /* Use cache. */ { /* Use cache. */
if (ot_font->cached_coords_serial != font->serial_coords) if (ot_font->cached_coords_serial.get_relaxed () != (int) font->serial_coords)
{ {
ot_font->advance_cache->init (); ot_font->advance_cache->init ();
ot_font->cached_coords_serial = font->serial_coords; ot_font->cached_coords_serial.set_relaxed (font->serial_coords);
} }
for (unsigned int i = 0; i < count; i++) for (unsigned int i = 0; i < count; i++)