First pass of ImageWriter
Change-Id: I4f189587a2e3cc1c265200b8fa64321b299947eb
diff --git a/src/mark_stack.cc b/src/mark_stack.cc
index 47aaf0c..19dc1c1 100644
--- a/src/mark_stack.cc
+++ b/src/mark_stack.cc
@@ -22,13 +22,14 @@
bool MarkStack::Init(size_t maximum_size) {
size_t length = 64 * MB;
- void* addr = mmap(NULL, length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
- if (addr == MAP_FAILED) {
+ mem_map_.reset(MemMap::Map(length, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS));
+ if (mem_map_ == NULL) {
PLOG(ERROR) << "mmap failed";
return false;
}
+ byte* addr = mem_map_->GetAddress();
base_ = reinterpret_cast<const Object**>(addr);
- limit_ = reinterpret_cast<const Object**>((byte*)addr + length);
+ limit_ = reinterpret_cast<const Object**>(addr + length);
ptr_ = reinterpret_cast<Object const**>(addr);
int result = madvise(addr, length, MADV_DONTNEED);
if (result == -1) {
@@ -37,11 +38,6 @@
return true;
}
-MarkStack::~MarkStack() {
- int result = munmap((void*)base_, limit_ - base_);
- if (result == -1) {
- PLOG(WARNING) << "munmap failed";
- }
-}
+MarkStack::~MarkStack() {}
} // namespace art