Avoid reading sysprops again.
DynamicPartiitonControlAndroid reads sysprops
again and again. These feature flags can be stored
as a member variable.
Test: pass
Change-Id: Ie885afa502ae7387b76c231d9f54cd550c38c682
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index a8210cf..0c1f0d3 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -62,13 +62,6 @@
// needs to be mapped, this timeout is longer than |kMapTimeout|.
constexpr std::chrono::milliseconds kMapSnapshotTimeout{5000};
-DynamicPartitionControlAndroid::DynamicPartitionControlAndroid() {
- if (GetVirtualAbFeatureFlag().IsEnabled()) {
- snapshot_ = android::snapshot::SnapshotManager::New();
- CHECK(snapshot_ != nullptr) << "Cannot initialize SnapshotManager.";
- }
-}
-
DynamicPartitionControlAndroid::~DynamicPartitionControlAndroid() {
CleanupInternal(false /* wait */);
}
@@ -91,12 +84,22 @@
return FeatureFlag(FeatureFlag::Value::NONE);
}
+DynamicPartitionControlAndroid::DynamicPartitionControlAndroid()
+ : dynamic_partitions_(
+ GetFeatureFlag(kUseDynamicPartitions, kRetrfoitDynamicPartitions)),
+ virtual_ab_(GetFeatureFlag(kVirtualAbEnabled, kVirtualAbRetrofit)) {
+ if (GetVirtualAbFeatureFlag().IsEnabled()) {
+ snapshot_ = android::snapshot::SnapshotManager::New();
+ CHECK(snapshot_ != nullptr) << "Cannot initialize SnapshotManager.";
+ }
+}
+
FeatureFlag DynamicPartitionControlAndroid::GetDynamicPartitionsFeatureFlag() {
- return GetFeatureFlag(kUseDynamicPartitions, kRetrfoitDynamicPartitions);
+ return dynamic_partitions_;
}
FeatureFlag DynamicPartitionControlAndroid::GetVirtualAbFeatureFlag() {
- return GetFeatureFlag(kVirtualAbEnabled, kVirtualAbRetrofit);
+ return virtual_ab_;
}
bool DynamicPartitionControlAndroid::MapPartitionInternal(