Allow the `CodeBuffer` to be initialized with a zero-sized buffer.

Change-Id: Id7790c494f7398be4a5cd1fe89f6404d4c709330
diff --git a/src/code-buffer-vixl.cc b/src/code-buffer-vixl.cc
index ec7f288..c700e5a 100644
--- a/src/code-buffer-vixl.cc
+++ b/src/code-buffer-vixl.cc
@@ -30,8 +30,15 @@
 namespace vixl {
 
 
-CodeBuffer::CodeBuffer(size_t capacity) : managed_(true), capacity_(capacity) {
-  VIXL_CHECK(capacity_ != 0);
+CodeBuffer::CodeBuffer(size_t capacity)
+    : buffer_(NULL),
+      managed_(true),
+      cursor_(NULL),
+      dirty_(false),
+      capacity_(capacity) {
+  if (capacity_ == 0) {
+    return;
+  }
   buffer_ = reinterpret_cast<byte*>(malloc(capacity_));
   VIXL_CHECK(buffer_ != NULL);
   // Aarch64 instructions must be word aligned, we assert the default allocator
@@ -39,7 +46,6 @@
   VIXL_ASSERT(IsWordAligned(buffer_));
 
   cursor_ = buffer_;
-  dirty_ = false;
 }