OSDN Git Service

Fix initialization of OptimizingCompilerStats.
authorVladimir Marko <vmarko@google.com>
Fri, 24 Feb 2017 15:01:41 +0000 (15:01 +0000)
committerVladimir Marko <vmarko@google.com>
Fri, 24 Feb 2017 15:18:57 +0000 (15:18 +0000)
This is a follow-up to
    https://android-review.googlesource.com/343265
where we replaced Atomic<> with std::atomic<> because
Atomic<> was hiding std::atomic<>::operator=(). However,
while the default constructor of Atomic<> initializes the
value, the default constructor of std::atomic<> does not.

Test: m valgrind-test-art-host
Bug: 34053922
Change-Id: Iff2b38a7b28ee2d114991b60e3c40a33425bfc48

compiler/optimizing/optimizing_compiler_stats.h

index f7f6a14..7240d40 100644 (file)
@@ -73,7 +73,10 @@ enum MethodCompilationStat {
 
 class OptimizingCompilerStats {
  public:
-  OptimizingCompilerStats() {}
+  OptimizingCompilerStats() {
+    // The std::atomic<> default constructor leaves values uninitialized, so initialize them now.
+    Reset();
+  }
 
   void RecordStat(MethodCompilationStat stat, uint32_t count = 1) {
     compile_stats_[stat] += count;