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;
}