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.