From cb20a2f0b366bfc16db3a489a60156dec7a9fe21 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 24 Nov 2014 18:35:14 -0800 Subject: Minikin: Remove unused variables, fix init order For build-system CFLAGS clean-up, fix unused variables. Reorder initializer list to initialize in the order of member declarations. Change-Id: I64358b2dcf0e39d0f4e18fdc3473de867f84fcba --- include/minikin/FontFamily.h | 3 ++- libs/minikin/FontCollection.cpp | 6 +++++- libs/minikin/FontFamily.cpp | 14 +++++++++++--- libs/minikin/Layout.cpp | 6 +++--- libs/minikin/MinikinFontFreeType.cpp | 2 +- sample/example_skia.cpp | 3 --- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/include/minikin/FontFamily.h b/include/minikin/FontFamily.h index 08c7a2c..7bdff6e 100644 --- a/include/minikin/FontFamily.h +++ b/include/minikin/FontFamily.h @@ -141,7 +141,8 @@ public: MinikinFont* getFont(size_t index) const; FontStyle getStyle(size_t index) const; - // Get Unicode coverage. Lifetime of returned bitset is same as receiver. + // Get Unicode coverage. Lifetime of returned bitset is same as receiver. May return nullptr on + // error. const SparseBitSet* getCoverage(); private: void addFontLocked(MinikinFont* typeface, FontStyle style); diff --git a/libs/minikin/FontCollection.cpp b/libs/minikin/FontCollection.cpp index 7b6b950..e3911c5 100644 --- a/libs/minikin/FontCollection.cpp +++ b/libs/minikin/FontCollection.cpp @@ -53,8 +53,12 @@ FontCollection::FontCollection(const vector& typefaces) : continue; } family->RefLocked(); - mFamilies.push_back(family); // emplace_back would be better const SparseBitSet* coverage = family->getCoverage(); + if (coverage == nullptr) { + family->UnrefLocked(); + continue; + } + mFamilies.push_back(family); // emplace_back would be better mMaxChar = max(mMaxChar, coverage->length()); lastChar.push_back(coverage->nextSetBit(0)); } diff --git a/libs/minikin/FontFamily.cpp b/libs/minikin/FontFamily.cpp index d2e5867..da7320b 100644 --- a/libs/minikin/FontFamily.cpp +++ b/libs/minikin/FontFamily.cpp @@ -191,10 +191,18 @@ const SparseBitSet* FontFamily::getCoverage() { MinikinFont* typeface = getClosestMatch(defaultStyle).font; const uint32_t cmapTag = MinikinFont::MakeTag('c', 'm', 'a', 'p'); size_t cmapSize = 0; - bool ok = typeface->GetTable(cmapTag, NULL, &cmapSize); + if (!typeface->GetTable(cmapTag, NULL, &cmapSize)) { + ALOGE("Could not get cmap table size!\n"); + // Note: This means we will retry on the next call to getCoverage, as we can't store + // the failure. This is fine, as we assume this doesn't really happen in practice. + return nullptr; + } UniquePtr cmapData(new uint8_t[cmapSize]); - ok = typeface->GetTable(cmapTag, cmapData.get(), &cmapSize); - CmapCoverage::getCoverage(mCoverage, cmapData.get(), cmapSize); + if (!typeface->GetTable(cmapTag, cmapData.get(), &cmapSize)) { + ALOGE("Unexpected failure to read cmap table!\n"); + return nullptr; + } + CmapCoverage::getCoverage(mCoverage, cmapData.get(), cmapSize); // TODO: Error check? #ifdef VERBOSE_DEBUG ALOGD("font coverage length=%d, first ch=%x\n", mCoverage->length(), mCoverage->nextSetBit(0)); diff --git a/libs/minikin/Layout.cpp b/libs/minikin/Layout.cpp index fa77701..db0667b 100644 --- a/libs/minikin/Layout.cpp +++ b/libs/minikin/Layout.cpp @@ -77,11 +77,11 @@ class LayoutCacheKey { public: LayoutCacheKey(const FontCollection* collection, const MinikinPaint& paint, FontStyle style, const uint16_t* chars, size_t start, size_t count, size_t nchars, bool dir) - : mStart(start), mCount(count), mId(collection->getId()), mStyle(style), + : mChars(chars), mNchars(nchars), + mStart(start), mCount(count), mId(collection->getId()), mStyle(style), mSize(paint.size), mScaleX(paint.scaleX), mSkewX(paint.skewX), mLetterSpacing(paint.letterSpacing), - mPaintFlags(paint.paintFlags), mIsRtl(dir), - mChars(chars), mNchars(nchars) { + mPaintFlags(paint.paintFlags), mIsRtl(dir) { } bool operator==(const LayoutCacheKey &other) const; hash_t hash() const; diff --git a/libs/minikin/MinikinFontFreeType.cpp b/libs/minikin/MinikinFontFreeType.cpp index a251dda..972f3f1 100644 --- a/libs/minikin/MinikinFontFreeType.cpp +++ b/libs/minikin/MinikinFontFreeType.cpp @@ -49,7 +49,7 @@ float MinikinFontFreeType::GetHorizontalAdvance(uint32_t glyph_id, FT_Set_Pixel_Sizes(mTypeface, 0, paint.size); FT_UInt32 flags = FT_LOAD_DEFAULT; // TODO: respect hinting settings FT_Fixed advance; - FT_Error error = FT_Get_Advance(mTypeface, glyph_id, flags, &advance); + FT_Get_Advance(mTypeface, glyph_id, flags, &advance); return advance * (1.0 / 65536); } diff --git a/sample/example_skia.cpp b/sample/example_skia.cpp index 51fcf47..f892b8c 100644 --- a/sample/example_skia.cpp +++ b/sample/example_skia.cpp @@ -55,8 +55,6 @@ FontCollection *makeFontCollection() { }; FontFamily *family = new FontFamily(); - FT_Face face; - FT_Error error; for (size_t i = 0; i < sizeof(fns)/sizeof(fns[0]); i++) { const char *fn = fns[i]; SkTypeface *skFace = SkTypeface::CreateFromFile(fn); @@ -118,7 +116,6 @@ int runMinikinTest() { Layout layout; layout.setFontCollection(collection); const char *text = "fine world \xe0\xa4\xa8\xe0\xa4\xae\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa5\x87"; - const char *style = "font-size: 32; font-weight: 700;"; int bidiFlags = 0; FontStyle fontStyle(7); MinikinPaint minikinPaint; -- cgit v1.2.3