Index: src/heap-inl.h |
diff --git a/src/heap-inl.h b/src/heap-inl.h |
index 880885593abe2916cdcad30bc46a369454fd663f..414c914ae08debefca684c4fad7f2849e87eb9c7 100644 |
--- a/src/heap-inl.h |
+++ b/src/heap-inl.h |
@@ -69,7 +69,7 @@ void PromotionQueue::insert(HeapObject* target, int size) { |
*(--rear_) = size; |
// Assert no overflow into live objects. |
#ifdef DEBUG |
- SemiSpace::AssertValidRange(HEAP->new_space()->top(), |
+ SemiSpace::AssertValidRange(target->GetIsolate()->heap()->new_space()->top(), |
reinterpret_cast<Address>(rear_)); |
#endif |
} |
@@ -508,7 +508,7 @@ void Heap::ScavengePointer(HeapObject** p) { |
void Heap::ScavengeObject(HeapObject** p, HeapObject* object) { |
- ASSERT(HEAP->InFromSpace(object)); |
+ ASSERT(object->GetIsolate()->heap()->InFromSpace(object)); |
// We use the first word (where the map pointer usually is) of a heap |
// object to record the forwarding pointer. A forwarding pointer can |
@@ -520,7 +520,7 @@ void Heap::ScavengeObject(HeapObject** p, HeapObject* object) { |
// copied. |
if (first_word.IsForwardingAddress()) { |
HeapObject* dest = first_word.ToForwardingAddress(); |
- ASSERT(HEAP->InFromSpace(*p)); |
+ ASSERT(object->GetIsolate()->heap()->InFromSpace(*p)); |
*p = dest; |
return; |
} |
@@ -613,10 +613,10 @@ Isolate* Heap::isolate() { |
#ifdef DEBUG |
-#define GC_GREEDY_CHECK() \ |
- if (FLAG_gc_greedy) HEAP->GarbageCollectionGreedyCheck() |
+#define GC_GREEDY_CHECK(ISOLATE) \ |
+ if (FLAG_gc_greedy) (ISOLATE)->heap()->GarbageCollectionGreedyCheck() |
#else |
-#define GC_GREEDY_CHECK() { } |
+#define GC_GREEDY_CHECK(ISOLATE) { } |
#endif |
// Calls the FUNCTION_CALL function and retries it up to three times |
@@ -628,7 +628,7 @@ Isolate* Heap::isolate() { |
#define CALL_AND_RETRY(ISOLATE, FUNCTION_CALL, RETURN_VALUE, RETURN_EMPTY, OOM)\ |
do { \ |
- GC_GREEDY_CHECK(); \ |
+ GC_GREEDY_CHECK(ISOLATE); \ |
MaybeObject* __maybe_object__ = FUNCTION_CALL; \ |
Object* __object__ = NULL; \ |
if (__maybe_object__->ToObject(&__object__)) RETURN_VALUE; \ |
@@ -636,7 +636,7 @@ Isolate* Heap::isolate() { |
OOM; \ |
} \ |
if (!__maybe_object__->IsRetryAfterGC()) RETURN_EMPTY; \ |
- ISOLATE->heap()->CollectGarbage(Failure::cast(__maybe_object__)-> \ |
+ (ISOLATE)->heap()->CollectGarbage(Failure::cast(__maybe_object__)-> \ |
allocation_space(), \ |
"allocation failure"); \ |
__maybe_object__ = FUNCTION_CALL; \ |
@@ -645,8 +645,8 @@ Isolate* Heap::isolate() { |
OOM; \ |
} \ |
if (!__maybe_object__->IsRetryAfterGC()) RETURN_EMPTY; \ |
- ISOLATE->counters()->gc_last_resort_from_handles()->Increment(); \ |
- ISOLATE->heap()->CollectAllAvailableGarbage("last resort gc"); \ |
+ (ISOLATE)->counters()->gc_last_resort_from_handles()->Increment(); \ |
+ (ISOLATE)->heap()->CollectAllAvailableGarbage("last resort gc"); \ |
{ \ |
AlwaysAllocateScope __scope__; \ |
__maybe_object__ = FUNCTION_CALL; \ |
@@ -719,12 +719,12 @@ void ExternalStringTable::Verify() { |
for (int i = 0; i < new_space_strings_.length(); ++i) { |
Object* obj = Object::cast(new_space_strings_[i]); |
ASSERT(heap_->InNewSpace(obj)); |
- ASSERT(obj != HEAP->the_hole_value()); |
+ ASSERT(obj != heap_->the_hole_value()); |
} |
for (int i = 0; i < old_space_strings_.length(); ++i) { |
Object* obj = Object::cast(old_space_strings_[i]); |
ASSERT(!heap_->InNewSpace(obj)); |
- ASSERT(obj != HEAP->the_hole_value()); |
+ ASSERT(obj != heap_->the_hole_value()); |
} |
#endif |
} |
@@ -831,25 +831,29 @@ AlwaysAllocateScope::AlwaysAllocateScope() { |
// non-handle code to call handle code. The code still works but |
// performance will degrade, so we want to catch this situation |
// in debug mode. |
- ASSERT(HEAP->always_allocate_scope_depth_ == 0); |
- HEAP->always_allocate_scope_depth_++; |
+ Isolate* isolate = Isolate::Current(); |
+ ASSERT(isolate->heap()->always_allocate_scope_depth_ == 0); |
+ isolate->heap()->always_allocate_scope_depth_++; |
} |
AlwaysAllocateScope::~AlwaysAllocateScope() { |
- HEAP->always_allocate_scope_depth_--; |
- ASSERT(HEAP->always_allocate_scope_depth_ == 0); |
+ Isolate* isolate = Isolate::Current(); |
+ isolate->heap()->always_allocate_scope_depth_--; |
+ ASSERT(isolate->heap()->always_allocate_scope_depth_ == 0); |
} |
#ifdef VERIFY_HEAP |
NoWeakEmbeddedMapsVerificationScope::NoWeakEmbeddedMapsVerificationScope() { |
- HEAP->no_weak_embedded_maps_verification_scope_depth_++; |
+ Isolate* isolate = Isolate::Current(); |
+ isolate->heap()->no_weak_embedded_maps_verification_scope_depth_++; |
} |
NoWeakEmbeddedMapsVerificationScope::~NoWeakEmbeddedMapsVerificationScope() { |
- HEAP->no_weak_embedded_maps_verification_scope_depth_--; |
+ Isolate* isolate = Isolate::Current(); |
+ isolate->heap()->no_weak_embedded_maps_verification_scope_depth_--; |
} |
#endif |
@@ -858,7 +862,7 @@ void VerifyPointersVisitor::VisitPointers(Object** start, Object** end) { |
for (Object** current = start; current < end; current++) { |
if ((*current)->IsHeapObject()) { |
HeapObject* object = HeapObject::cast(*current); |
- CHECK(HEAP->Contains(object)); |
+ CHECK(object->GetIsolate()->heap()->Contains(object)); |
CHECK(object->map()->IsMap()); |
} |
} |
@@ -866,21 +870,23 @@ void VerifyPointersVisitor::VisitPointers(Object** start, Object** end) { |
double GCTracer::SizeOfHeapObjects() { |
- return (static_cast<double>(HEAP->SizeOfObjects())) / MB; |
+ return (static_cast<double>(heap_->SizeOfObjects())) / MB; |
} |
DisallowAllocationFailure::DisallowAllocationFailure() { |
#ifdef DEBUG |
- old_state_ = HEAP->disallow_allocation_failure_; |
- HEAP->disallow_allocation_failure_ = true; |
+ Isolate* isolate = Isolate::Current(); |
+ old_state_ = isolate->heap()->disallow_allocation_failure_; |
+ isolate->heap()->disallow_allocation_failure_ = true; |
#endif |
} |
DisallowAllocationFailure::~DisallowAllocationFailure() { |
#ifdef DEBUG |
- HEAP->disallow_allocation_failure_ = old_state_; |
+ Isolate* isolate = Isolate::Current(); |
+ isolate->heap()->disallow_allocation_failure_ = old_state_; |
#endif |
} |