Index: src/allocation.cc |
diff --git a/src/allocation.cc b/src/allocation.cc |
index 27415c65251f64b0515811bc3344b0c198931fce..119b087c1963a416e811479e02dcd6c1ea828404 100644 |
--- a/src/allocation.cc |
+++ b/src/allocation.cc |
@@ -25,58 +25,16 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-#include "v8.h" |
-#include "isolate.h" |
-#include "allocation.h" |
- |
-/* TODO(isolates): this is what's included in bleeding_edge |
- including of v8.h was replaced with these in |
- http://codereview.chromium.org/5005001/ |
- we need Isolate and Isolate needs a lot more so I'm including v8.h back. |
#include "../include/v8stdint.h" |
#include "globals.h" |
#include "checks.h" |
#include "allocation.h" |
#include "utils.h" |
-*/ |
namespace v8 { |
namespace internal { |
-#ifdef DEBUG |
- |
-NativeAllocationChecker::NativeAllocationChecker( |
- NativeAllocationChecker::NativeAllocationAllowed allowed) |
- : allowed_(allowed) { |
- if (allowed == DISALLOW) { |
- Isolate* isolate = Isolate::Current(); |
- isolate->set_allocation_disallowed(isolate->allocation_disallowed() + 1); |
- } |
-} |
- |
- |
-NativeAllocationChecker::~NativeAllocationChecker() { |
- Isolate* isolate = Isolate::Current(); |
- if (allowed_ == DISALLOW) { |
- isolate->set_allocation_disallowed(isolate->allocation_disallowed() - 1); |
- } |
- ASSERT(isolate->allocation_disallowed() >= 0); |
-} |
- |
- |
-bool NativeAllocationChecker::allocation_allowed() { |
- // TODO(isolates): either find a way to make this work that doesn't |
- // require initializing an isolate before we can use malloc or drop |
- // it completely. |
- return true; |
- // return Isolate::Current()->allocation_disallowed() == 0; |
-} |
- |
-#endif // DEBUG |
- |
- |
void* Malloced::New(size_t size) { |
- ASSERT(NativeAllocationChecker::allocation_allowed()); |
void* result = malloc(size); |
if (result == NULL) { |
v8::internal::FatalProcessOutOfMemory("Malloced operator new"); |
@@ -142,77 +100,6 @@ char* StrNDup(const char* str, int n) { |
} |
-void Isolate::PreallocatedStorageInit(size_t size) { |
- ASSERT(free_list_.next_ == &free_list_); |
- ASSERT(free_list_.previous_ == &free_list_); |
- PreallocatedStorage* free_chunk = |
- reinterpret_cast<PreallocatedStorage*>(new char[size]); |
- free_list_.next_ = free_list_.previous_ = free_chunk; |
- free_chunk->next_ = free_chunk->previous_ = &free_list_; |
- free_chunk->size_ = size - sizeof(PreallocatedStorage); |
- preallocated_storage_preallocated_ = true; |
-} |
- |
- |
-void* Isolate::PreallocatedStorageNew(size_t size) { |
- if (!preallocated_storage_preallocated_) { |
- return FreeStoreAllocationPolicy::New(size); |
- } |
- ASSERT(free_list_.next_ != &free_list_); |
- ASSERT(free_list_.previous_ != &free_list_); |
- |
- size = (size + kPointerSize - 1) & ~(kPointerSize - 1); |
- // Search for exact fit. |
- for (PreallocatedStorage* storage = free_list_.next_; |
- storage != &free_list_; |
- storage = storage->next_) { |
- if (storage->size_ == size) { |
- storage->Unlink(); |
- storage->LinkTo(&in_use_list_); |
- return reinterpret_cast<void*>(storage + 1); |
- } |
- } |
- // Search for first fit. |
- for (PreallocatedStorage* storage = free_list_.next_; |
- storage != &free_list_; |
- storage = storage->next_) { |
- if (storage->size_ >= size + sizeof(PreallocatedStorage)) { |
- storage->Unlink(); |
- storage->LinkTo(&in_use_list_); |
- PreallocatedStorage* left_over = |
- reinterpret_cast<PreallocatedStorage*>( |
- reinterpret_cast<char*>(storage + 1) + size); |
- left_over->size_ = storage->size_ - size - sizeof(PreallocatedStorage); |
- ASSERT(size + left_over->size_ + sizeof(PreallocatedStorage) == |
- storage->size_); |
- storage->size_ = size; |
- left_over->LinkTo(&free_list_); |
- return reinterpret_cast<void*>(storage + 1); |
- } |
- } |
- // Allocation failure. |
- ASSERT(false); |
- return NULL; |
-} |
- |
- |
-// We don't attempt to coalesce. |
-void Isolate::PreallocatedStorageDelete(void* p) { |
- if (p == NULL) { |
- return; |
- } |
- if (!preallocated_storage_preallocated_) { |
- FreeStoreAllocationPolicy::Delete(p); |
- return; |
- } |
- PreallocatedStorage* storage = reinterpret_cast<PreallocatedStorage*>(p) - 1; |
- ASSERT(storage->next_->previous_ == storage); |
- ASSERT(storage->previous_->next_ == storage); |
- storage->Unlink(); |
- storage->LinkTo(&free_list_); |
-} |
- |
- |
void PreallocatedStorage::LinkTo(PreallocatedStorage* other) { |
next_ = other->next_; |
other->next_->previous_ = this; |