From 87de3cf4c4bdda888744604424ad58c1aba6c192 Mon Sep 17 00:00:00 2001 From: Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> Date: Fri, 3 May 2019 20:10:54 +1000 Subject: Adds out of bound check for selecting text on path Fixes https://gitlab.com/inkscape/inbox/issues/420 --- src/libnrtype/Layout-TNG-OutIter.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/libnrtype') diff --git a/src/libnrtype/Layout-TNG-OutIter.cpp b/src/libnrtype/Layout-TNG-OutIter.cpp index ca52018af..7d7ee98f0 100644 --- a/src/libnrtype/Layout-TNG-OutIter.cpp +++ b/src/libnrtype/Layout-TNG-OutIter.cpp @@ -308,8 +308,10 @@ Geom::Rect Layout::characterBoundingBox(iterator const &it, double *rotation) co if (_path_fitted) { double cluster_half_width = 0.0; - for (int glyph_index = _characters[char_index].in_glyph ; _glyphs[glyph_index].in_character == char_index ; glyph_index++) + for (int glyph_index = _characters[char_index].in_glyph ; _glyphs.size() != glyph_index ; glyph_index++) { + if (_glyphs[glyph_index].in_character != char_index) break; cluster_half_width += _glyphs[glyph_index].width; + } cluster_half_width *= 0.5; double midpoint_offset = _characters[char_index].span(this).x_start + _characters[char_index].x + cluster_half_width; -- cgit v1.2.3