diff options
Diffstat (limited to 'NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc')
-rw-r--r-- | NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc b/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc index 739d2b4..427eb63 100644 --- a/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc +++ b/NativeLauncher/installer-plugin/prefer_dotnet_aot_plugin.cc @@ -30,8 +30,8 @@ #endif #define LOG_TAG "DOTNET_INSTALLER_PLUGIN" -static bool aotPluginInstalled = false; -static bool aotPluginFinished = false; +static std::string prevInstallPkgId = std::string(""); +static std::string prevFinishPkgId = std::string(""); typedef struct metadata_s { const char* key; @@ -40,12 +40,16 @@ typedef struct metadata_s { extern "C" int PKGMGR_MDPARSER_PLUGIN_INSTALL(const char *pkgId, const char *appId, GList *list) { + if (pkgId == NULL) { + return 0; + } + // Can be multiple apps in one package - if (aotPluginInstalled) { - _INFO("AOT plugin already installed"); + if (strcmp(pkgId, prevInstallPkgId.c_str()) == 0) { + _INFO("AOT Plugin already run for same pkgId (%s)", pkgId); return 0; } - aotPluginInstalled = true; + prevInstallPkgId = pkgId; int skipOpt = false; if (!pkgmgr_installer_info_get_skip_optimization(&skipOpt)) { @@ -109,12 +113,16 @@ extern "C" int PKGMGR_MDPARSER_PLUGIN_REMOVED(const char *pkgId, const char *app extern "C" int PKGMGR_MDPARSER_PLUGIN_CLEAN(const char *pkgId, const char *appId, GList *list) { + if (pkgId == NULL) { + return 0; + } + // Can be multiple apps in one package - if (aotPluginFinished) { - _INFO("AOT plugin already finished(CLEAN)"); + if (strcmp(pkgId, prevFinishPkgId.c_str()) == 0) { + _INFO("AOT Plugin(CLEAN) already run for same pkgId (%s)", pkgId); return 0; } - aotPluginFinished = true; + prevFinishPkgId = pkgId; finalizeNICommon(); return 0; @@ -122,12 +130,16 @@ extern "C" int PKGMGR_MDPARSER_PLUGIN_CLEAN(const char *pkgId, const char *appId extern "C" int PKGMGR_MDPARSER_PLUGIN_UNDO(const char *pkgId, const char *appId, GList *list) { + if (pkgId == NULL) { + return 0; + } + // Can be multiple apps in one package - if (aotPluginFinished) { - _INFO("AOT plugin already finished(UNDO)"); + if (strcmp(pkgId, prevFinishPkgId.c_str()) == 0) { + _INFO("AOT Plugin(UNDO) already run for same pkgId (%s)", pkgId); return 0; } - aotPluginFinished = true; + prevFinishPkgId = pkgId; finalizeNICommon(); return 0; |