From 3c196def91726913a417e703ac482bb2dbbfff27 Mon Sep 17 00:00:00 2001 From: fmalita Date: Sat, 20 Sep 2014 05:40:22 -0700 Subject: Souped-up SkTextBlob. Refactored text blob backend for improved performance: instead of using separate buffers for runs/positions/glyphs, everything is now packed in a consolidated slab (including the SkTextBlob object itself!). Benefits: * number of allocations per blob construction reduced from ~4 to 1 (also minimizes internal fragmentation) * run record size reduced by 8 bytes This takes the blob construction overhead down to negligible levels (for the current Blink uncached textblob implementation). Unfortunately, the code is much more finicky (run merging in particular) -- hence the assert spree. Multi-run blobs are vulnerable to realloc storms but this is not a problem at the moment because Blink is using one-run blobs 99% of the time. Will be addressed in the future. R=mtklein@google.com, reed@google.com, robertphillips@google.com Committed: https://skia.googlesource.com/skia/+/13645ea0ea87038ebd71be3bd6d53b313069a9e4 Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/581173003 --- tests/TextBlobTest.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'tests/TextBlobTest.cpp') diff --git a/tests/TextBlobTest.cpp b/tests/TextBlobTest.cpp index 70c9ddc861..5d08b0147d 100644 --- a/tests/TextBlobTest.cpp +++ b/tests/TextBlobTest.cpp @@ -175,9 +175,6 @@ private: } SkAutoTUnref blob(builder.build()); - REPORTER_ASSERT(reporter, SkToBool(blob->fGlyphBuffer) == (glyphCount > 0)); - REPORTER_ASSERT(reporter, SkToBool(blob->fPosBuffer) == (posCount > 0)); - REPORTER_ASSERT(reporter, SkToBool(blob->fRuns.get()) == (inCount > 0)); SkTextBlob::RunIterator it(blob); for (unsigned i = 0; i < outCount; ++i) { -- cgit v1.2.3