summarylogtreecommitdiffstats
path: root/chromium-harfbuzz-r0.patch
blob: 2d5602de280d41dc4ee27209691078514ddcd4c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppymaster@gmail.com>
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<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);
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