Index: ui/gfx/render_text_harfbuzz.cc |
diff --git a/ui/gfx/render_text_harfbuzz.cc b/ui/gfx/render_text_harfbuzz.cc |
index 7e916ff3ae21142a633c45521e402b3b1b44ebc8..f24732b7ff3f203bb9a300660c30b6b991ca0ba8 100644 |
--- a/ui/gfx/render_text_harfbuzz.cc |
+++ b/ui/gfx/render_text_harfbuzz.cc |
@@ -1012,8 +1012,10 @@ void RenderTextHarfBuzz::DrawVisualText(Canvas* canvas) { |
background_is_transparent()); |
Range glyphs_range = run.CharRangeToGlyphRange(segment.char_range); |
scoped_ptr<SkPoint[]> positions(new SkPoint[glyphs_range.length()]); |
- SkScalar offset_x = |
- preceding_segment_widths - run.positions[glyphs_range.start()].x(); |
+ SkScalar offset_x = preceding_segment_widths - |
+ ((glyphs_range.GetMin() != 0) |
+ ? run.positions[glyphs_range.GetMin()].x() |
+ : 0); |
for (size_t j = 0; j < glyphs_range.length(); ++j) { |
positions[j] = run.positions[(glyphs_range.is_reversed()) ? |
(glyphs_range.start() - j) : |