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(
diff --git a/dynamic_partition_control_android.h b/dynamic_partition_control_android.h
index 35d8216..d70a2aa 100644
--- a/dynamic_partition_control_android.h
+++ b/dynamic_partition_control_android.h
@@ -112,6 +112,8 @@
const DeltaArchiveManifest& manifest);
std::set<std::string> mapped_devices_;
+ const FeatureFlag dynamic_partitions_;
+ const FeatureFlag virtual_ab_;
std::unique_ptr<android::snapshot::SnapshotManager> snapshot_;
bool target_supports_snapshot_ = false;