Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use byte indices instead of char indices for text runs #10895

Merged
merged 4 commits into from Apr 29, 2016
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Remove unneeded add_nonglyph_for_char_index

This is a no-op, since a "non-glyph" is simply `GlyphEntry(0)`. This is the
same as `GlyphEntry::initial()`, which all the entries are already initialized
to.
  • Loading branch information
mbrubeck committed Apr 28, 2016
commit dba878dfb278619bf2d808c0c21758a937ec6bb7
@@ -517,19 +517,6 @@ impl<'a> GlyphStore {
self.entry_buffer[i.to_usize()] = entry;
}

// used when a character index has no associated glyph---for example, a ligature continuation.
pub fn add_nonglyph_for_char_index(&mut self,
i: CharIndex,
cluster_start: bool,
ligature_start: bool) {
assert!(i < self.char_len());

let entry = GlyphEntry::complex(cluster_start, ligature_start, 0);
debug!("adding spacer for character without associated glyph[idx={:?}]", i);

self.entry_buffer[i.to_usize()] = entry;
}

#[inline]
pub fn iter_glyphs_for_char_range(&'a self, rang: &Range<CharIndex>) -> GlyphIterator<'a> {
if rang.begin() >= self.char_len() {
@@ -435,7 +435,7 @@ impl Shaper {
// we'll need to do something special to handle `word-spacing` properly.
let character = text[char_byte_span.clone()].chars().next().unwrap();
if is_bidi_control(character) {
glyphs.add_nonglyph_for_char_index(char_idx, false, false);
// Don't add any glyphs for bidi control chars
} else if character == '\t' {
// Treat tabs in pre-formatted text as a fixed number of spaces.
//
@@ -476,12 +476,6 @@ impl Shaper {

// now add the detailed glyph entry.
glyphs.add_glyphs_for_char_index(char_idx, &datas);

// set the other chars, who have no glyphs
for _ in text[covered_byte_span].chars().skip(1) {
char_idx = char_idx + char_step;
glyphs.add_nonglyph_for_char_index(char_idx, false, false);
}
}

// shift up our working spans past things we just handled.
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.