Fail in the right place when we cannot allocate a mark stack.

Previously we'd keep going and then crash when dereferencing
the mark stack later. I expected dalvikvm to throw an OutOfMemoryError
in this scenario but it also aborts.

Change-Id: I3cd995113561f40b191fcb51ecfcb1f032bed4ec
diff --git a/src/mark_stack.cc b/src/mark_stack.cc
index 34bad7d..a35fa2d 100644
--- a/src/mark_stack.cc
+++ b/src/mark_stack.cc
@@ -12,20 +12,14 @@
 
 MarkStack* MarkStack::Create() {
   UniquePtr<MarkStack> mark_stack(new MarkStack);
-  bool success = mark_stack->Init();
-  if (!success) {
-    return NULL;
-  } else {
-    return mark_stack.release();
-  }
+  mark_stack->Init();
+  return mark_stack.release();
 }
 
-bool MarkStack::Init() {
+void MarkStack::Init() {
   size_t length = 64 * MB;
   mem_map_.reset(MemMap::Map("dalvik-mark-stack", NULL, length, PROT_READ | PROT_WRITE));
-  if (mem_map_.get() == NULL) {
-    return false;
-  }
+  CHECK(mem_map_.get() != NULL) << "MemMap::Map() failed; aborting";
   byte* addr = mem_map_->GetAddress();
   base_ = reinterpret_cast<const Object**>(addr);
   limit_ = reinterpret_cast<const Object**>(addr + length);
@@ -34,7 +28,6 @@
   if (result == -1) {
     PLOG(WARNING) << "madvise failed";
   }
-  return true;
 }
 
 MarkStack::~MarkStack() {}