Fix running with DlMalloc instead of RosAlloc.

Bug: 13748830
Bug: 13744490

Change-Id: Ieec97cf58ebf9864a40ee85aae582cdcf3f27c0c
diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc
index 1a32a9a..1bfe9bf 100644
--- a/runtime/gc/heap.cc
+++ b/runtime/gc/heap.cc
@@ -21,7 +21,6 @@
 
 #include <limits>
 #include <vector>
-#include <valgrind.h>
 
 #include "base/histogram-inl.h"
 #include "base/stl_util.h"
@@ -150,7 +149,7 @@
       total_allocation_time_(0),
       verify_object_mode_(kVerifyObjectModeDisabled),
       disable_moving_gc_count_(0),
-      running_on_valgrind_(RUNNING_ON_VALGRIND > 0),
+      running_on_valgrind_(Runtime::Current()->RunningOnValgrind()),
       use_tlab_(use_tlab) {
   if (VLOG_IS_ON(heap) || VLOG_IS_ON(startup)) {
     LOG(INFO) << "Heap() entering";
diff --git a/runtime/gc/space/dlmalloc_space.cc b/runtime/gc/space/dlmalloc_space.cc
index 30c2edb..60f566c 100644
--- a/runtime/gc/space/dlmalloc_space.cc
+++ b/runtime/gc/space/dlmalloc_space.cc
@@ -60,7 +60,7 @@
 
   // Everything is set so record in immutable structure and leave
   byte* begin = mem_map->Begin();
-  if (Runtime::Current()->GetHeap()->RunningOnValgrind()) {
+  if (Runtime::Current()->RunningOnValgrind()) {
     return new ValgrindMallocSpace<DlMallocSpace, void*>(
         name, mem_map, mspace, begin, end, begin + capacity, growth_limit, initial_size);
   } else {
diff --git a/runtime/gc/space/large_object_space.cc b/runtime/gc/space/large_object_space.cc
index 2fc67ec..0b353c7 100644
--- a/runtime/gc/space/large_object_space.cc
+++ b/runtime/gc/space/large_object_space.cc
@@ -97,7 +97,7 @@
       lock_("large object map space lock", kAllocSpaceLock) {}
 
 LargeObjectMapSpace* LargeObjectMapSpace::Create(const std::string& name) {
-  if (RUNNING_ON_VALGRIND > 0) {
+  if (Runtime::Current()->RunningOnValgrind()) {
     return new ValgrindLargeObjectMapSpace(name);
   } else {
     return new LargeObjectMapSpace(name);
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index f016189..bafc0fc 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -22,6 +22,7 @@
 
 #include <signal.h>
 #include <sys/syscall.h>
+#include <valgrind.h>
 
 #include <cstdio>
 #include <cstdlib>
@@ -111,6 +112,7 @@
       exit_(nullptr),
       abort_(nullptr),
       stats_enabled_(false),
+      running_on_valgrind_(RUNNING_ON_VALGRIND > 0),
       profile_(false),
       profile_period_s_(0),
       profile_duration_s_(0),
diff --git a/runtime/runtime.h b/runtime/runtime.h
index 50c88d3..755c0f0 100644
--- a/runtime/runtime.h
+++ b/runtime/runtime.h
@@ -417,6 +417,10 @@
     return stack_overflow_handler_ == nullptr;
   }
 
+  bool RunningOnValgrind() const {
+    return running_on_valgrind_;
+  }
+
  private:
   static void InitPlatformSignalHandlers();
 
@@ -517,6 +521,8 @@
   bool stats_enabled_;
   RuntimeStats stats_;
 
+  const bool running_on_valgrind_;
+
   // Runtime profile support.
   bool profile_;
   std::string profile_output_filename_;