Reviewers: Igor Sheludko,

Message:
PTAL

Description:
We should never allocate a 0-sized buffer, so never grow from 0.

BUG=

Please review this at https://codereview.chromium.org/446933003/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+9, -25 lines):
  M src/arm/assembler-arm.cc
  M src/arm64/assembler-arm64.cc
  M src/assembler.cc
  M src/ia32/assembler-ia32.cc
  M src/x64/assembler-x64.cc


Index: src/arm/assembler-arm.cc
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc
index 1c690a8a6d720169f44c5e20ceafb4a300f80b7d..1a2f5d6e5dd0ecd274b2dd63888121a1175308a0 100644
--- a/src/arm/assembler-arm.cc
+++ b/src/arm/assembler-arm.cc
@@ -3202,9 +3202,7 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ == 0) {
-    desc.buffer_size = kMinimalBufferSize;
-  } else if (buffer_size_ < 1*MB) {
+  if (buffer_size_ < 1 * MB) {
     desc.buffer_size = 2*buffer_size_;
   } else {
     desc.buffer_size = buffer_size_ + 1*MB;
Index: src/arm64/assembler-arm64.cc
diff --git a/src/arm64/assembler-arm64.cc b/src/arm64/assembler-arm64.cc
index a51b22ad9a5789875922002a54bdb28897e9934a..dc2d587f177d1ba3f7653b09ab2aac0448ed8d25 100644
--- a/src/arm64/assembler-arm64.cc
+++ b/src/arm64/assembler-arm64.cc
@@ -2771,9 +2771,7 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ == 0) {
-    desc.buffer_size = kMinimalBufferSize;
-  } else if (buffer_size_ < 1 * MB) {
+  if (buffer_size_ < 1 * MB) {
     desc.buffer_size = 2 * buffer_size_;
   } else {
     desc.buffer_size = buffer_size_ + 1 * MB;
Index: src/assembler.cc
diff --git a/src/assembler.cc b/src/assembler.cc
index c35c81cc9f3f59dfbd85fc8e8ae5fba3e5095147..fb0c842fbea150128a4a626c0fa10fd9d6fb6dfa 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -134,15 +134,9 @@ AssemblerBase::AssemblerBase(Isolate* isolate, void* buffer, int buffer_size)
   if (FLAG_mask_constants_with_cookie && isolate != NULL)  {
     jit_cookie_ = isolate->random_number_generator()->NextInt();
   }
-  if (buffer == NULL) {
-    // Do our own buffer management.
-    buffer = NewArray<byte>(buffer_size);
-    own_buffer_ = true;
-  } else {
-    // Use externally provided buffer instead.
-    DCHECK(buffer_size > 0);
-    own_buffer_ = false;
-  }
+  own_buffer_ = buffer == NULL;
+  DCHECK(0 < buffer_size);
+  if (own_buffer_) buffer = NewArray<byte>(buffer_size);
   buffer_ = static_cast<byte*>(buffer);
   buffer_size_ = buffer_size;

Index: src/ia32/assembler-ia32.cc
diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc
index 43f49d8e9ccee666ad3680987c8bd8d9bb048a2d..d8cd59cf50433b59fc97a43eef6d26b823ff8c79 100644
--- a/src/ia32/assembler-ia32.cc
+++ b/src/ia32/assembler-ia32.cc
@@ -2497,11 +2497,8 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ == 0) {
-    desc.buffer_size = kMinimalBufferSize;
-  } else {
-    desc.buffer_size = 2*buffer_size_;
-  }
+  desc.buffer_size = 2 * buffer_size_;
+
   // Some internal data structures overflow for very large buffers,
   // they must ensure that kMaximalBufferSize is not too large.
   if ((desc.buffer_size > kMaximalBufferSize) ||
Index: src/x64/assembler-x64.cc
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index f8f323fc8229ee37fe720d4b57ed09893289f03b..d13c21f4b7c17a2c044d7eee052df85c95797a4a 100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -331,11 +331,8 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ == 0) {
-    desc.buffer_size = kMinimalBufferSize;
-  } else {
-    desc.buffer_size = 2*buffer_size_;
-  }
+  desc.buffer_size = 2 * buffer_size_;
+
   // Some internal data structures overflow for very large buffers,
   // they must ensure that kMaximalBufferSize is not too large.
   if ((desc.buffer_size > kMaximalBufferSize) ||


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to