resolved conflicts for merge of 6c18e2c8 to master
Change-Id: Idb4679247b201a1f453c63fee5b45b12b03a67a1
diff --git a/core/jni/android/graphics/TextLayoutCache.cpp b/core/jni/android/graphics/TextLayoutCache.cpp
index d588a1b..a2120df 100644
--- a/core/jni/android/graphics/TextLayoutCache.cpp
+++ b/core/jni/android/graphics/TextLayoutCache.cpp
@@ -338,23 +338,11 @@
}
TextLayoutShaper::TextLayoutShaper() {
- init();
-
mBuffer = hb_buffer_create();
}
-void TextLayoutShaper::init() {
- mDefaultTypeface = SkTypeface::CreateFromName(NULL, SkTypeface::kNormal);
-}
-
-void TextLayoutShaper::unrefTypefaces() {
- SkSafeUnref(mDefaultTypeface);
-}
-
TextLayoutShaper::~TextLayoutShaper() {
hb_buffer_destroy(mBuffer);
-
- unrefTypefaces();
}
void TextLayoutShaper::computeValues(TextLayoutValue* value, const SkPaint* paint, const UChar* chars,
@@ -838,23 +826,27 @@
}
if (baseGlyphCount != 0) {
+ SkTypeface::Style style = SkTypeface::kNormal;
+ if (typeface != NULL) {
+ style = typeface->style();
+ }
typeface = typefaceForScript(paint, typeface, hb_buffer_get_script(mBuffer));
if (!typeface) {
baseGlyphCount = 0;
- typeface = mDefaultTypeface;
- SkSafeRef(typeface);
+ typeface = SkTypeface::CreateFromName(NULL, style);
#if DEBUG_GLYPHS
ALOGD("Using Default Typeface");
#endif
}
} else {
if (!typeface) {
- typeface = mDefaultTypeface;
+ typeface = SkTypeface::CreateFromName(NULL, SkTypeface::kNormal);
#if DEBUG_GLYPHS
- ALOGD("Using Default Typeface");
+ ALOGD("Using Default Typeface (normal style)");
#endif
+ } else {
+ SkSafeRef(typeface);
}
- SkSafeRef(typeface);
}
mShapingPaint.setTypeface(typeface);
@@ -898,8 +890,6 @@
hb_face_destroy(mCachedHBFaces.valueAt(i));
}
mCachedHBFaces.clear();
- unrefTypefaces();
- init();
}
TextLayoutEngine::TextLayoutEngine() {
diff --git a/core/jni/android/graphics/TextLayoutCache.h b/core/jni/android/graphics/TextLayoutCache.h
index f9b9900..5414a11 100644
--- a/core/jni/android/graphics/TextLayoutCache.h
+++ b/core/jni/android/graphics/TextLayoutCache.h
@@ -197,18 +197,10 @@
SkPaint mShapingPaint;
/**
- * Skia default typeface to be returned if we cannot resolve script
- */
- SkTypeface* mDefaultTypeface;
-
- /**
* Cache of Harfbuzz faces
*/
KeyedVector<SkFontID, hb_face_t*> mCachedHBFaces;
- void init();
- void unrefTypefaces();
-
SkTypeface* typefaceForScript(const SkPaint* paint, SkTypeface* typeface,
hb_script_t script);
@@ -228,7 +220,6 @@
hb_face_t* referenceCachedHBFace(SkTypeface* typeface);
bool isComplexScript(hb_script_t script);
-
}; // TextLayoutShaper
/**