Revision: 22947
Author:   [email protected]
Date:     Wed Aug  6 17:48:31 2014 UTC
Log:      We should never allocate a 0-sized buffer, so never grow from 0.

BUG=
[email protected]

Review URL: https://codereview.chromium.org/446933003
http://code.google.com/p/v8/source/detail?r=22947

Modified:
 /branches/bleeding_edge/src/arm/assembler-arm.cc
 /branches/bleeding_edge/src/arm64/assembler-arm64.cc
 /branches/bleeding_edge/src/assembler.cc
 /branches/bleeding_edge/src/ia32/assembler-ia32.cc
 /branches/bleeding_edge/src/lithium.cc
 /branches/bleeding_edge/src/x64/assembler-x64.cc

=======================================
--- /branches/bleeding_edge/src/arm/assembler-arm.cc Wed Aug 6 16:56:52 2014 UTC +++ /branches/bleeding_edge/src/arm/assembler-arm.cc Wed Aug 6 17:48:31 2014 UTC
@@ -3202,9 +3202,7 @@

   // 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;
=======================================
--- /branches/bleeding_edge/src/arm64/assembler-arm64.cc Wed Aug 6 16:56:52 2014 UTC +++ /branches/bleeding_edge/src/arm64/assembler-arm64.cc Wed Aug 6 17:48:31 2014 UTC
@@ -2771,9 +2771,7 @@

   // 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;
=======================================
--- /branches/bleeding_edge/src/assembler.cc    Wed Aug  6 16:56:52 2014 UTC
+++ /branches/bleeding_edge/src/assembler.cc    Wed Aug  6 17:48:31 2014 UTC
@@ -134,15 +134,10 @@
   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;
+  if (buffer_size == 0) buffer_size = kMinimalBufferSize;
+  DCHECK(buffer_size > 0);
+  if (own_buffer_) buffer = NewArray<byte>(buffer_size);
   buffer_ = static_cast<byte*>(buffer);
   buffer_size_ = buffer_size;

=======================================
--- /branches/bleeding_edge/src/ia32/assembler-ia32.cc Wed Aug 6 16:56:52 2014 UTC +++ /branches/bleeding_edge/src/ia32/assembler-ia32.cc Wed Aug 6 17:48:31 2014 UTC
@@ -2497,11 +2497,8 @@

   // 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) ||
=======================================
--- /branches/bleeding_edge/src/lithium.cc      Wed Aug  6 17:16:13 2014 UTC
+++ /branches/bleeding_edge/src/lithium.cc      Wed Aug  6 17:48:31 2014 UTC
@@ -457,8 +457,7 @@


 Handle<Code> LChunk::Codegen() {
-  MacroAssembler assembler(info()->isolate(), NULL,
-                           Assembler::kMinimalBufferSize);
+  MacroAssembler assembler(info()->isolate(), NULL, 0);
   LOG_CODE_EVENT(info()->isolate(),
                  CodeStartLinePosInfoRecordEvent(
                      assembler.positions_recorder()));
=======================================
--- /branches/bleeding_edge/src/x64/assembler-x64.cc Wed Aug 6 16:56:52 2014 UTC +++ /branches/bleeding_edge/src/x64/assembler-x64.cc Wed Aug 6 17:48:31 2014 UTC
@@ -331,11 +331,8 @@

   // 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