Check all metadata for AOT in the installer plugin (#538) accepted/tizen_8.0_unified tizen_8.0 accepted/tizen/8.0/unified/20240416.155538
author조웅석/MDE Lab(SR)/삼성전자 <ws77.cho@samsung.com>
Tue, 16 Apr 2024 01:21:00 +0000 (10:21 +0900)
committerWoongsuk Cho <ws77.cho@samsung.com>
Tue, 16 Apr 2024 01:56:23 +0000 (10:56 +0900)
NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc

index 91928a7..a2e3659 100644 (file)
 bool aotPluginInstalled = false;
 bool aotPluginFinished = false;
 
+typedef struct metadata_s {
+       const char* key;
+       const char* value;
+} metadata_t;
+
 extern "C" int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgId, const char *appId, GList *list)
 {
        // Can be multiple apps in one package
@@ -50,13 +55,20 @@ extern "C" int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgId, const char *app
                }
        }
 
-       std::string metaValue = getMetadataValue(std::string(pkgId), AOT_METADATA_KEY);
-       if (metaValue.empty()) {
-               _ERR("Failed to get metadata from [%s]", pkgId);
-               return -1;
+       bool doAOT = false;
+       GList* iter = list;
+       while (iter) {
+               metadata_t* md = static_cast<metadata_t*>(iter->data);
+               if (strcmp(AOT_METADATA_KEY, md->key) == 0) {
+                       if (strcmp(METADATA_VALUE_TRUE, md->value) == 0) {
+                               doAOT = true;
+                       }
+                       break;
+               }
+               iter = g_list_next(iter);
        }
 
-       if (metaValue == METADATA_VALUE_TRUE) {
+       if (doAOT) {
                _DBG("Prefer dotnet application AOT set TRUE");
 
                if (initNICommon() != NI_ERROR_NONE) {