|
@@ -0,0 +1,55 @@
|
|
|
+--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
|
|
++++ a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
|
|
|
+@@ -139,7 +139,7 @@ static hb_position_t HarfBuzzGetGlyphHorizontalAdvance(hb_font_t* hb_font,
|
|
|
+ static void HarfBuzzGetGlyphHorizontalAdvances(hb_font_t* font,
|
|
|
+ void* font_data,
|
|
|
+ unsigned count,
|
|
|
+- hb_codepoint_t* first_glyph,
|
|
|
++ const hb_codepoint_t* first_glyph,
|
|
|
+ unsigned int glyph_stride,
|
|
|
+ hb_position_t* first_advance,
|
|
|
+ unsigned int advance_stride,
|
|
|
+--- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
|
|
|
++++ a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
|
|
|
+@@ -18,6 +18,11 @@ T* advance_by_byte_size(T* p, unsigned byte_size) {
|
|
|
+ return reinterpret_cast<T*>(reinterpret_cast<uint8_t*>(p) + byte_size);
|
|
|
+ }
|
|
|
+
|
|
|
++template <class T>
|
|
|
++T* advance_by_byte_size_const(T* p, unsigned byte_size) {
|
|
|
++ return reinterpret_cast<T*>(reinterpret_cast<const uint8_t*>(p) + byte_size);
|
|
|
++}
|
|
|
++
|
|
|
+ } // namespace
|
|
|
+
|
|
|
+ SkiaTextMetrics::SkiaTextMetrics(const SkPaint* paint) : paint_(paint) {
|
|
|
+@@ -39,7 +44,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(hb_codepoint_t codepoint,
|
|
|
+ }
|
|
|
+
|
|
|
+ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
|
|
|
+- hb_codepoint_t* glyphs,
|
|
|
++ const hb_codepoint_t* glyphs,
|
|
|
+ unsigned glyph_stride,
|
|
|
+ hb_position_t* advances,
|
|
|
+ unsigned advance_stride) {
|
|
|
+@@ -48,7 +53,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
|
|
|
+ // array that copy them to a regular array.
|
|
|
+ Vector<Glyph, 256> glyph_array(count);
|
|
|
+ for (unsigned i = 0; i < count;
|
|
|
+- i++, glyphs = advance_by_byte_size(glyphs, glyph_stride)) {
|
|
|
++ i++, glyphs = advance_by_byte_size_const(glyphs, glyph_stride)) {
|
|
|
+ glyph_array[i] = *glyphs;
|
|
|
+ }
|
|
|
+ Vector<SkScalar, 256> sk_width_array(count);
|
|
|
+--- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
|
|
|
++++ a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
|
|
|
+@@ -19,7 +19,7 @@ class SkiaTextMetrics final {
|
|
|
+
|
|
|
+ void GetGlyphWidthForHarfBuzz(hb_codepoint_t, hb_position_t* width);
|
|
|
+ void GetGlyphWidthForHarfBuzz(unsigned count,
|
|
|
+- hb_codepoint_t* first_glyph,
|
|
|
++ const hb_codepoint_t* first_glyph,
|
|
|
+ unsigned glyph_stride,
|
|
|
+ hb_position_t* first_advance,
|
|
|
+ unsigned advance_stride);
|
|
|
+--
|