diff options
-rw-r--r-- | artd/artd.cc | 6 | ||||
-rw-r--r-- | artd/artd_test.cc | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/artd/artd.cc b/artd/artd.cc index 0c9b69a697..c391f5099d 100644 --- a/artd/artd.cc +++ b/artd/artd.cc @@ -117,6 +117,7 @@ using ::android::base::ReadFileToString; using ::android::base::Result; using ::android::base::Split; using ::android::base::StringReplace; +using ::android::base::Tokenize; using ::android::base::WriteStringToFd; using ::android::base::WriteStringToFile; using ::android::fs_mgr::FstabEntry; @@ -1645,6 +1646,11 @@ void Artd::AddPerfConfigFlags(PriorityClass priority_class, // It takes longer but reduces the memory footprint. dex2oat_args.AddIf(props_->GetBool("ro.config.low_ram", /*default_value=*/false), "--compile-individually"); + + for (const std::string& flag : + Tokenize(props_->GetOrEmpty("dalvik.vm.dex2oat-flags"), /*delimiters=*/" ")) { + dex2oat_args.AddIfNonEmpty("%s", flag); + } } Result<int> Artd::ExecAndReturnCode(const std::vector<std::string>& args, diff --git a/artd/artd_test.cc b/artd/artd_test.cc index fb99bbb60b..858fd9909b 100644 --- a/artd/artd_test.cc +++ b/artd/artd_test.cc @@ -943,6 +943,8 @@ TEST_F(ArtdTest, dexoptFlagsFromSystemProps) { EXPECT_CALL(*mock_props_, GetProperty("ro.config.low_ram")).WillOnce(Return("1")); EXPECT_CALL(*mock_props_, GetProperty("dalvik.vm.appimageformat")).WillOnce(Return("imgfmt")); EXPECT_CALL(*mock_props_, GetProperty("dalvik.vm.boot-image")).WillOnce(Return("boot-image")); + EXPECT_CALL(*mock_props_, GetProperty("dalvik.vm.dex2oat-flags")) + .WillOnce(Return("--flag1 --flag2 --flag3")); EXPECT_CALL(*mock_exec_utils_, DoExecAndReturnCode( @@ -962,7 +964,10 @@ TEST_F(ArtdTest, dexoptFlagsFromSystemProps) { Contains("--compile-individually"), Contains(Flag("--image-format=", "imgfmt")), Not(Contains("--force-jit-zygote")), - Contains(Flag("--boot-image=", "boot-image")))), + Contains(Flag("--boot-image=", "boot-image")), + Contains("--flag1"), + Contains("--flag2"), + Contains("--flag3"))), _, _)) .WillOnce(Return(0)); |