diff options
author | 2022-11-14 23:44:52 -0800 | |
---|---|---|
committer | 2022-11-30 18:04:36 -0800 | |
commit | 9eb44c9727d83c9738819321b13d12a39cb10c55 (patch) | |
tree | 5053e27abc9d362520105b322f5e2b3f05174d5b | |
parent | dbce35604cdadfadc47492d7f75576365726d323 (diff) |
[res] Change callback from function to function_ref
function_ref should be the default callback type if it's
a function argument and won't get stored anywhere
Bug: 237583012
Test: build + boot
Change-Id: I1957665436f003f7a5e758b229640c9601c28faf
-rw-r--r-- | libs/androidfw/AssetManager2.cpp | 12 | ||||
-rw-r--r-- | libs/androidfw/include/androidfw/AssetManager2.h | 14 |
2 files changed, 15 insertions, 11 deletions
diff --git a/libs/androidfw/AssetManager2.cpp b/libs/androidfw/AssetManager2.cpp index 2864c6843633..1b327018f681 100644 --- a/libs/androidfw/AssetManager2.cpp +++ b/libs/androidfw/AssetManager2.cpp @@ -1417,6 +1417,18 @@ std::unique_ptr<Theme> AssetManager2::NewTheme() { return theme; } +void AssetManager2::ForEachPackage(base::function_ref<bool(const std::string&, uint8_t)> func, + package_property_t excluded_property_flags) const { + for (const PackageGroup& package_group : package_groups_) { + const auto loaded_package = package_group.packages_.front().loaded_package_; + if ((loaded_package->GetPropertyFlags() & excluded_property_flags) == 0U + && !func(loaded_package->GetPackageName(), + package_group.dynamic_ref_table->mAssignedPackageId)) { + return; + } + } +} + Theme::Theme(AssetManager2* asset_manager) : asset_manager_(asset_manager) { } diff --git a/libs/androidfw/include/androidfw/AssetManager2.h b/libs/androidfw/include/androidfw/AssetManager2.h index c933fb38a22d..e4d1218debe6 100644 --- a/libs/androidfw/include/androidfw/AssetManager2.h +++ b/libs/androidfw/include/androidfw/AssetManager2.h @@ -17,6 +17,7 @@ #ifndef ANDROIDFW_ASSETMANAGER2_H_ #define ANDROIDFW_ASSETMANAGER2_H_ +#include "android-base/function_ref.h" #include "android-base/macros.h" #include <array> @@ -320,17 +321,8 @@ class AssetManager2 { // Creates a new Theme from this AssetManager. std::unique_ptr<Theme> NewTheme(); - void ForEachPackage(const std::function<bool(const std::string&, uint8_t)> func, - package_property_t excluded_property_flags = 0U) const { - for (const PackageGroup& package_group : package_groups_) { - const auto loaded_package = package_group.packages_.front().loaded_package_; - if ((loaded_package->GetPropertyFlags() & excluded_property_flags) == 0U - && !func(loaded_package->GetPackageName(), - package_group.dynamic_ref_table->mAssignedPackageId)) { - return; - } - } - } + void ForEachPackage(base::function_ref<bool(const std::string&, uint8_t)> func, + package_property_t excluded_property_flags = 0U) const; void DumpToLog() const; |