From 80aa0e904d52892c7d5e62e21c029ba2c1c0012b Mon Sep 17 00:00:00 2001 From: "Brian J. Burg" Date: Thu, 15 Nov 2012 09:46:59 -0800 Subject: [PATCH] Add some debugging for mulitple glyph cases in shaper and glyph storage. --- src/servo-gfx/text/glyph.rs | 8 ++++++++ src/servo-gfx/text/harfbuzz/shaper.rs | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/servo-gfx/text/glyph.rs b/src/servo-gfx/text/glyph.rs index fcee76784cb..0147b91e799 100644 --- a/src/servo-gfx/text/glyph.rs +++ b/src/servo-gfx/text/glyph.rs @@ -307,6 +307,8 @@ impl DetailedGlyphStore { detail_offset: self.detail_buffer.len() }; + debug!("Adding entry[off=%u] for detailed glyphs: %?", entry_offset, glyphs); + /* TODO: don't actually assert this until asserts are compiled in/out based on severity, debug/release, etc. This assertion would wreck the complexity of the lookup. @@ -325,6 +327,8 @@ impl DetailedGlyphStore { // not pure; may perform a deferred sort. fn get_detailed_glyphs_for_entry(&self, entry_offset: uint, count: u16) -> &[DetailedGlyph] { + debug!("Requesting detailed glyphs[n=%u] for entry[off=%u]", count as uint, entry_offset); + assert count > 0; assert (count as uint) <= self.detail_buffer.len(); self.ensure_sorted(); @@ -503,6 +507,8 @@ impl GlyphStore { } }; + //debug!("Adding single glyph[idx=%u]: %?", i, entry); + self.entry_buffer.set_elt(i, entry); } @@ -529,6 +535,8 @@ impl GlyphStore { } }; + debug!("Adding multiple glyphs[idx=%u, count=%u]: %?", i, glyph_count, entry); + self.entry_buffer.set_elt(i, entry); } diff --git a/src/servo-gfx/text/harfbuzz/shaper.rs b/src/servo-gfx/text/harfbuzz/shaper.rs index 03a3b39c26a..c70b6cad1d8 100644 --- a/src/servo-gfx/text/harfbuzz/shaper.rs +++ b/src/servo-gfx/text/harfbuzz/shaper.rs @@ -102,7 +102,6 @@ pub impl HarfbuzzShaper { when rendered in a specific font. */ pub fn shape_text(text: &str, glyphs: &GlyphStore) { - debug!("shaping text '%s'", text); let hb_buffer: *hb_buffer_t = hb_buffer_create(); hb_buffer_set_direction(hb_buffer, HB_DIRECTION_LTR); @@ -124,6 +123,11 @@ pub impl HarfbuzzShaper { let pos_buf = hb_buffer_get_glyph_positions(hb_buffer, to_unsafe_ptr(&pos_buf_len)); assert pos_buf.is_not_null(); + debug!("Shaped text[len=%u], got back %u glyph info records.", text.len(), info_buf_len as uint); + if text.len() != info_buf_len as uint { + debug!("Since these are not equal, we probably have been given some complex glyphs!"); + } + assert info_buf_len == pos_buf_len; for uint::range(0u, info_buf_len as uint) |i| { unsafe {