From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Sun, 21 Oct 2018 10:06:53 -0400 Subject: [PATCH] blink: add 'const' modifier for harfbuzz hb_codepoint_t pointers This resolves a build failure against harfbuzz 2.0. Based on a patch by Alexandre Fierreira. Bug: https://bugs.gentoo.org/669034 --- .../renderer/platform/fonts/shaping/harfbuzz_face.cc | 2 +- .../renderer/platform/fonts/skia/skia_text_metrics.cc | 9 +++++++-- .../renderer/platform/fonts/skia/skia_text_metrics.h | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc index 8e7d91ca371f..e279a5876cb3 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc +++ b/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, diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc index 77ec6209fab9..9f9070921448 100644 --- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc +++ b/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(reinterpret_cast(p) + byte_size); } +template +T* advance_by_byte_size_const(T* p, unsigned byte_size) { + return reinterpret_cast(reinterpret_cast(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_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 sk_width_array(count); diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h index 787d8af0375a..3bc4407c641b 100644 --- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h +++ b/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); -- 2.19.1