Chromium Code Reviews| Index: include/v8.h |
| diff --git a/include/v8.h b/include/v8.h |
| index 20583c852ca83d686b31099cc562359d99714289..86db38799b103fc9b61fa9b7bbd993a6bd71186f 100644 |
| --- a/include/v8.h |
| +++ b/include/v8.h |
| @@ -7493,13 +7493,12 @@ class Internals { |
| static const int kExternalOneByteRepresentationTag = 0x06; |
| static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; |
| - static const int kAmountOfExternalAllocatedMemoryOffset = |
| - 4 * kApiPointerSize; |
| - static const int kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset = |
| - kAmountOfExternalAllocatedMemoryOffset + kApiInt64Size; |
| - static const int kIsolateRootsOffset = |
| - kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset + kApiInt64Size + |
| - kApiPointerSize + kApiPointerSize; |
| + static const int kExternalMemoryOffset = 4 * kApiPointerSize; |
| + static const int kExternalMemoryLimitOffset = |
| + kExternalMemoryOffset + kApiInt64Size; |
| + static const int kIsolateRootsOffset = kExternalMemoryLimitOffset + |
| + kApiInt64Size + kApiInt64Size + |
| + kApiPointerSize + kApiPointerSize; |
| static const int kUndefinedValueRootIndex = 4; |
| static const int kTheHoleValueRootIndex = 5; |
| static const int kNullValueRootIndex = 6; |
| @@ -7507,10 +7506,6 @@ class Internals { |
| static const int kFalseValueRootIndex = 8; |
| static const int kEmptyStringRootIndex = 9; |
| - // The external allocation limit should be below 256 MB on all architectures |
| - // to avoid that resource-constrained embedders run low on memory. |
| - static const int kExternalAllocationLimit = 192 * 1024 * 1024; |
| - |
| static const int kNodeClassIdOffset = 1 * kApiPointerSize; |
| static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; |
| static const int kNodeStateMask = 0x7; |
| @@ -8705,21 +8700,16 @@ uint32_t Isolate::GetNumberOfDataSlots() { |
| int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( |
| int64_t change_in_bytes) { |
| typedef internal::Internals I; |
| - int64_t* amount_of_external_allocated_memory = |
| - reinterpret_cast<int64_t*>(reinterpret_cast<uint8_t*>(this) + |
| - I::kAmountOfExternalAllocatedMemoryOffset); |
| - int64_t* amount_of_external_allocated_memory_at_last_global_gc = |
| - reinterpret_cast<int64_t*>( |
| - reinterpret_cast<uint8_t*>(this) + |
| - I::kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset); |
| - int64_t amount = *amount_of_external_allocated_memory + change_in_bytes; |
| - if (change_in_bytes > 0 && |
| - amount - *amount_of_external_allocated_memory_at_last_global_gc > |
| - I::kExternalAllocationLimit) { |
| + int64_t* external_memory = reinterpret_cast<int64_t*>( |
| + reinterpret_cast<uint8_t*>(this) + I::kExternalMemoryOffset); |
| + const int64_t external_memory_limit = *reinterpret_cast<int64_t*>( |
| + reinterpret_cast<uint8_t*>(this) + I::kExternalMemoryLimitOffset); |
| + const int64_t amount = *external_memory + change_in_bytes; |
| + *external_memory = amount; |
| + if (change_in_bytes > 0 && amount > external_memory_limit) { |
| ReportExternalAllocationLimitReached(); |
| } |
| - *amount_of_external_allocated_memory = amount; |
|
Michael Lippautz
2016/06/21 07:41:44
Moving this line above the branch should be the on
|
| - return *amount_of_external_allocated_memory; |
| + return *external_memory; |
| } |