summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Calin Juravle <calin@google.com> 2016-01-20 03:56:12 +0000
committer Calin Juravle <calin@google.com> 2016-01-20 04:02:21 +0000
commit47c83eac0644a4b6092d956dd3a6824bccb7263a (patch)
treea7a5d0ff7d7f0e6e462240d24f209c045cdfcb76
parent4ca3850acc5e7d24cc623b796fd5d83c7e9aea1a (diff)
Make sure that OfflineCompilationInfo is set to nullptr when needed.
Local variables weren't initialized when in tests and the early return in ProcessProfiles didn't make sure that the output parameter is set to nullptr. Bug: 26080105 Change-Id: Id88a6abb515c3ab9a6ebac56bc9dac7920c3d58f
-rw-r--r--compiler/profile_assistant.cc6
-rw-r--r--compiler/profile_assistant_test.cc6
2 files changed, 8 insertions, 4 deletions
diff --git a/compiler/profile_assistant.cc b/compiler/profile_assistant.cc
index 0871722440..85335efcc4 100644
--- a/compiler/profile_assistant.cc
+++ b/compiler/profile_assistant.cc
@@ -31,6 +31,7 @@ bool ProfileAssistant::ProcessProfilesInternal(
DCHECK(!profile_files.empty());
DCHECK(!reference_profile_files.empty() ||
(profile_files.size() == reference_profile_files.size()));
+
std::vector<ProfileCompilationInfo> new_info(profile_files.size());
bool should_compile = false;
// Read the main profile files.
@@ -44,7 +45,6 @@ bool ProfileAssistant::ProcessProfilesInternal(
}
if (!should_compile) {
- *profile_compilation_info = nullptr;
return true;
}
@@ -124,6 +124,8 @@ bool ProfileAssistant::ProcessProfiles(
const std::vector<uint32_t>& profile_files_fd,
const std::vector<uint32_t>& reference_profile_files_fd,
/*out*/ ProfileCompilationInfo** profile_compilation_info) {
+ *profile_compilation_info = nullptr;
+
std::string error;
ScopedCollectionFlock profile_files_flocks(profile_files_fd.size());
if (!profile_files_flocks.Init(profile_files_fd, &error)) {
@@ -145,6 +147,8 @@ bool ProfileAssistant::ProcessProfiles(
const std::vector<std::string>& profile_files,
const std::vector<std::string>& reference_profile_files,
/*out*/ ProfileCompilationInfo** profile_compilation_info) {
+ *profile_compilation_info = nullptr;
+
std::string error;
ScopedCollectionFlock profile_files_flocks(profile_files.size());
if (!profile_files_flocks.Init(profile_files, &error)) {
diff --git a/compiler/profile_assistant_test.cc b/compiler/profile_assistant_test.cc
index cecb865f82..58b7513377 100644
--- a/compiler/profile_assistant_test.cc
+++ b/compiler/profile_assistant_test.cc
@@ -180,7 +180,7 @@ TEST_F(ProfileAssistantTest, DoNotAdviseCompilation) {
SetupProfile("p2", 2, kNumberOfMethodsToSkipCompilation, profile2, &info2);
// We should not advise compilation.
- ProfileCompilationInfo* result;
+ ProfileCompilationInfo* result = nullptr;
ASSERT_TRUE(ProfileAssistant::ProcessProfiles(profile_fds, reference_profile_fds, &result));
ASSERT_TRUE(result == nullptr);
@@ -221,7 +221,7 @@ TEST_F(ProfileAssistantTest, FailProcessingBecauseOfProfiles) {
SetupProfile("p1", 2, kNumberOfMethodsToEnableCompilation, profile2, &info2);
// We should fail processing.
- ProfileCompilationInfo* result;
+ ProfileCompilationInfo* result = nullptr;
ASSERT_FALSE(ProfileAssistant::ProcessProfiles(profile_fds, reference_profile_fds, &result));
ASSERT_TRUE(result == nullptr);
@@ -258,7 +258,7 @@ TEST_F(ProfileAssistantTest, FailProcessingBecauseOfReferenceProfiles) {
SetupProfile("p1", 2, kNumberOfMethodsToEnableCompilation, reference_profile, &reference_info);
// We should not advise compilation.
- ProfileCompilationInfo* result;
+ ProfileCompilationInfo* result = nullptr;
ASSERT_TRUE(profile1.GetFile()->ResetOffset());
ASSERT_TRUE(reference_profile.GetFile()->ResetOffset());
ASSERT_FALSE(ProfileAssistant::ProcessProfiles(profile_fds, reference_profile_fds, &result));