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()));
         }
     }