text: fix is_whitespace() assertion when invalid chars are included

This commit is contained in:
rdb 2018-02-17 20:48:58 +01:00
parent 95eee0cab2
commit 5c90f64182
2 changed files with 11 additions and 3 deletions

View File

@ -1626,11 +1626,12 @@ assemble_row(TextAssembler::TextRow &row,
} }
if (first_glyph != (TextGlyph *)NULL) { if (first_glyph != (TextGlyph *)NULL) {
assert(!first_glyph->is_whitespace());
advance = first_glyph->get_advance() * advance_scale; advance = first_glyph->get_advance() * advance_scale;
if (!first_glyph->is_whitespace()) {
swap(placement._glyph, first_glyph); swap(placement._glyph, first_glyph);
placed_glyphs.push_back(placement); placed_glyphs.push_back(placement);
} }
}
// Check if there is a second glyph to create a hacky ligature or some // Check if there is a second glyph to create a hacky ligature or some
// such nonsense. // such nonsense.

View File

@ -0,0 +1,7 @@
from panda3d import core
def test_text_assemble_null():
# Tests that no is_whitespace() assert occurs
assembler = core.TextAssembler(core.TextEncoder())
assembler.set_wtext(u"\0test")
assembler.assemble_text()