Revert "Cache the layout result if the font feature is specified"
Revert submission 25211873-font_feature_cache
Reason for revert: accessing feature flag in native causes the peformance regression.
Reverted changes: /q/submissionid:25211873-font_feature_cache
Change-Id: I1f4b619c827d2968fd8b75aa05f65a2ed89b62a2
diff --git a/libs/hwui/hwui/Paint.h b/libs/hwui/hwui/Paint.h
index ef4dce5..caffdfc 100644
--- a/libs/hwui/hwui/Paint.h
+++ b/libs/hwui/hwui/Paint.h
@@ -17,18 +17,18 @@
#ifndef ANDROID_GRAPHICS_PAINT_H_
#define ANDROID_GRAPHICS_PAINT_H_
+#include "Typeface.h"
+
+#include <cutils/compiler.h>
+
#include <SkFont.h>
#include <SkPaint.h>
#include <SkSamplingOptions.h>
-#include <cutils/compiler.h>
-#include <minikin/FamilyVariant.h>
-#include <minikin/FontFamily.h>
-#include <minikin/FontFeature.h>
-#include <minikin/Hyphenator.h>
-
#include <string>
-#include "Typeface.h"
+#include <minikin/FontFamily.h>
+#include <minikin/FamilyVariant.h>
+#include <minikin/Hyphenator.h>
namespace android {
@@ -82,15 +82,11 @@
float getWordSpacing() const { return mWordSpacing; }
- void setFontFeatureSettings(std::string_view fontFeatures) {
- mFontFeatureSettings = minikin::FontFeature::parse(fontFeatures);
+ void setFontFeatureSettings(const std::string& fontFeatureSettings) {
+ mFontFeatureSettings = fontFeatureSettings;
}
- void resetFontFeatures() { mFontFeatureSettings.clear(); }
-
- const std::vector<minikin::FontFeature>& getFontFeatureSettings() const {
- return mFontFeatureSettings;
- }
+ std::string getFontFeatureSettings() const { return mFontFeatureSettings; }
void setMinikinLocaleListId(uint32_t minikinLocaleListId) {
mMinikinLocaleListId = minikinLocaleListId;
@@ -174,7 +170,7 @@
float mLetterSpacing = 0;
float mWordSpacing = 0;
- std::vector<minikin::FontFeature> mFontFeatureSettings;
+ std::string mFontFeatureSettings;
uint32_t mMinikinLocaleListId;
std::optional<minikin::FamilyVariant> mFamilyVariant;
uint32_t mHyphenEdit = 0;
diff --git a/libs/hwui/jni/Paint.cpp b/libs/hwui/jni/Paint.cpp
index d84b73d..8c71d6f 100644
--- a/libs/hwui/jni/Paint.cpp
+++ b/libs/hwui/jni/Paint.cpp
@@ -33,7 +33,6 @@
#include <cassert>
#include <cstring>
#include <memory>
-#include <string_view>
#include <vector>
#include "ColorFilter.h"
@@ -691,11 +690,10 @@
jstring settings) {
Paint* paint = reinterpret_cast<Paint*>(paintHandle);
if (!settings) {
- paint->resetFontFeatures();
+ paint->setFontFeatureSettings(std::string());
} else {
ScopedUtfChars settingsChars(env, settings);
- paint->setFontFeatureSettings(
- std::string_view(settingsChars.c_str(), settingsChars.size()));
+ paint->setFontFeatureSettings(std::string(settingsChars.c_str(), settingsChars.size()));
}
}