aboutsummaryrefslogtreecommitdiffstats
path: root/components/gfx/text
diff options
context:
space:
mode:
authorVee Satayamas <vsatayamas@gmail.com>2016-08-17 18:57:19 +0700
committerJosh Matthews <josh@joshmatthews.net>2017-02-01 14:28:15 -0500
commitc69567406e32521b504f4e20e1be75177a4d47ee (patch)
tree8ee9a10d80b8727a2d5dd298099b0de05e0d8d13 /components/gfx/text
parent5e888b5504a9daad86663837ca9e996d63a48821 (diff)
downloadservo-c69567406e32521b504f4e20e1be75177a4d47ee.tar.gz
servo-c69567406e32521b504f4e20e1be75177a4d47ee.zip
Fix #12193 Servo displays upper level Thai character in wrong place.
Diffstat (limited to 'components/gfx/text')
-rw-r--r--components/gfx/text/glyph.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/components/gfx/text/glyph.rs b/components/gfx/text/glyph.rs
index 73a66ff19bf..ea5a009959e 100644
--- a/components/gfx/text/glyph.rs
+++ b/components/gfx/text/glyph.rs
@@ -254,10 +254,10 @@ impl<'a> DetailedGlyphStore {
let i = self.detail_lookup.binary_search(&key)
.expect("Invalid index not found in detailed glyph lookup table!");
-
- assert!(i + (count as usize) <= self.detail_buffer.len());
+ let main_detail_offset = self.detail_lookup[i].detail_offset;
+ assert!(main_detail_offset + (count as usize) <= self.detail_buffer.len());
// return a slice into the buffer
- &self.detail_buffer[i .. i + count as usize]
+ &self.detail_buffer[main_detail_offset .. main_detail_offset + count as usize]
}
fn detailed_glyph_with_index(&'a self,
@@ -274,9 +274,9 @@ impl<'a> DetailedGlyphStore {
let i = self.detail_lookup.binary_search(&key)
.expect("Invalid index not found in detailed glyph lookup table!");
-
- assert!(i + (detail_offset as usize) < self.detail_buffer.len());
- &self.detail_buffer[i + (detail_offset as usize)]
+ let main_detail_offset = self.detail_lookup[i].detail_offset;
+ assert!(main_detail_offset + (detail_offset as usize) < self.detail_buffer.len());
+ &self.detail_buffer[main_detail_offset + (detail_offset as usize)]
}
fn ensure_sorted(&mut self) {