From 9ae8fe1c601ecb7fef9962f9eb1adf11032378e4 Mon Sep 17 00:00:00 2001 From: fmalita Date: Tue, 13 Oct 2015 08:59:23 -0700 Subject: [SkTextBlob] Remove incorrect builder assert At the end of TightRunBounds, glyphPosX cannot exceed the start of the next run. But glyphPosY is running ahead of glyphPosX (for kFull_Positioning) => the glyphPosY assert is incorrect. Since the two pointers advance in lock-step, there isn't much value in the glyphPosY assert anyway - we might as well remove it. BUG=chromium:542643 R=reed@google.com,bungeman@google.com Review URL: https://codereview.chromium.org/1405463004 --- tests/TextBlobTest.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'tests/TextBlobTest.cpp') diff --git a/tests/TextBlobTest.cpp b/tests/TextBlobTest.cpp index ec748e7744..2a74e5a2db 100644 --- a/tests/TextBlobTest.cpp +++ b/tests/TextBlobTest.cpp @@ -149,7 +149,22 @@ public: } // Implicit bounds - // FIXME: not supported yet. + + { + // Exercise the empty bounds path, and ensure that RunRecord-aligned pos buffers + // don't trigger asserts (http://crbug.com/542643). + SkPaint p; + p.setTextSize(0); + p.setTextEncoding(SkPaint::kGlyphID_TextEncoding); + + const char* txt = "BOOO"; + const size_t len = strlen(txt); + const SkTextBlobBuilder::RunBuffer& buffer = builder.allocRunPos(p, (int)len); + p.textToGlyphs(txt, len, buffer.glyphs); + memset(buffer.pos, 0, sizeof(SkScalar) * len * 2); + SkAutoTUnref blob(builder.build()); + REPORTER_ASSERT(reporter, blob->bounds().isEmpty()); + } } private: -- cgit v1.2.3