From da44d773dedf8aae6153e3423012f236cba3bfcd Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Tue, 1 Apr 2014 15:01:46 -0700 Subject: Fix running with DlMalloc instead of RosAlloc. Bug: 13748830 Bug: 13744490 Change-Id: Ieec97cf58ebf9864a40ee85aae582cdcf3f27c0c --- runtime/gc/heap.cc | 3 +-- runtime/gc/space/dlmalloc_space.cc | 2 +- runtime/gc/space/large_object_space.cc | 2 +- runtime/runtime.cc | 2 ++ runtime/runtime.h | 6 ++++++ 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc index 1a32a9a05a..1bfe9bf988 100644 --- a/runtime/gc/heap.cc +++ b/runtime/gc/heap.cc @@ -21,7 +21,6 @@ #include #include -#include #include "base/histogram-inl.h" #include "base/stl_util.h" @@ -150,7 +149,7 @@ Heap::Heap(size_t initial_size, size_t growth_limit, size_t min_free, size_t max 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 30c2edb72e..60f566c8b0 100644 --- a/runtime/gc/space/dlmalloc_space.cc +++ b/runtime/gc/space/dlmalloc_space.cc @@ -60,7 +60,7 @@ DlMallocSpace* DlMallocSpace::CreateFromMemMap(MemMap* mem_map, const std::strin // 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( 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 2fc67ece00..0b353c7f17 100644 --- a/runtime/gc/space/large_object_space.cc +++ b/runtime/gc/space/large_object_space.cc @@ -97,7 +97,7 @@ LargeObjectMapSpace::LargeObjectMapSpace(const std::string& name) 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 f01618958f..bafc0fcea4 100644 --- a/runtime/runtime.cc +++ b/runtime/runtime.cc @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -111,6 +112,7 @@ Runtime::Runtime() 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 50c88d3e0e..755c0f010e 100644 --- a/runtime/runtime.h +++ b/runtime/runtime.h @@ -417,6 +417,10 @@ class Runtime { return stack_overflow_handler_ == nullptr; } + bool RunningOnValgrind() const { + return running_on_valgrind_; + } + private: static void InitPlatformSignalHandlers(); @@ -517,6 +521,8 @@ class Runtime { bool stats_enabled_; RuntimeStats stats_; + const bool running_on_valgrind_; + // Runtime profile support. bool profile_; std::string profile_output_filename_; -- cgit v1.2.3-59-g8ed1b