Index: src/global-handles.cc |
diff --git a/src/global-handles.cc b/src/global-handles.cc |
index 2c9fada1e82d97bc14bd9197549d08bf210835ea..940d53bb150be908a28176602151810e8d83dd44 100644 |
--- a/src/global-handles.cc |
+++ b/src/global-handles.cc |
@@ -38,13 +38,13 @@ class GlobalHandles::Node { |
// Maps handle location (slot) to the containing node. |
static Node* FromLocation(Object** location) { |
- ASSERT(OFFSET_OF(Node, object_) == 0); |
+ DCHECK(OFFSET_OF(Node, object_) == 0); |
return reinterpret_cast<Node*>(location); |
} |
Node() { |
- ASSERT(OFFSET_OF(Node, class_id_) == Internals::kNodeClassIdOffset); |
- ASSERT(OFFSET_OF(Node, flags_) == Internals::kNodeFlagsOffset); |
+ DCHECK(OFFSET_OF(Node, class_id_) == Internals::kNodeClassIdOffset); |
+ DCHECK(OFFSET_OF(Node, flags_) == Internals::kNodeFlagsOffset); |
STATIC_ASSERT(static_cast<int>(NodeState::kMask) == |
Internals::kNodeStateMask); |
STATIC_ASSERT(WEAK == Internals::kNodeStateIsWeakValue); |
@@ -73,7 +73,7 @@ class GlobalHandles::Node { |
void Initialize(int index, Node** first_free) { |
index_ = static_cast<uint8_t>(index); |
- ASSERT(static_cast<int>(index_) == index); |
+ DCHECK(static_cast<int>(index_) == index); |
set_state(FREE); |
set_in_new_space_list(false); |
parameter_or_next_free_.next_free = *first_free; |
@@ -81,7 +81,7 @@ class GlobalHandles::Node { |
} |
void Acquire(Object* object) { |
- ASSERT(state() == FREE); |
+ DCHECK(state() == FREE); |
object_ = object; |
class_id_ = v8::HeapProfiler::kPersistentHandleNoClassId; |
set_independent(false); |
@@ -93,7 +93,7 @@ class GlobalHandles::Node { |
} |
void Release() { |
- ASSERT(state() != FREE); |
+ DCHECK(state() != FREE); |
set_state(FREE); |
// Zap the values for eager trapping. |
object_ = reinterpret_cast<Object*>(kGlobalHandleZapValue); |
@@ -162,18 +162,18 @@ class GlobalHandles::Node { |
} |
void MarkPending() { |
- ASSERT(state() == WEAK); |
+ DCHECK(state() == WEAK); |
set_state(PENDING); |
} |
// Independent flag accessors. |
void MarkIndependent() { |
- ASSERT(state() != FREE); |
+ DCHECK(state() != FREE); |
set_independent(true); |
} |
void MarkPartiallyDependent() { |
- ASSERT(state() != FREE); |
+ DCHECK(state() != FREE); |
if (GetGlobalHandles()->isolate()->heap()->InNewSpace(object_)) { |
set_partially_dependent(true); |
} |
@@ -186,27 +186,27 @@ class GlobalHandles::Node { |
// Callback parameter accessors. |
void set_parameter(void* parameter) { |
- ASSERT(state() != FREE); |
+ DCHECK(state() != FREE); |
parameter_or_next_free_.parameter = parameter; |
} |
void* parameter() const { |
- ASSERT(state() != FREE); |
+ DCHECK(state() != FREE); |
return parameter_or_next_free_.parameter; |
} |
// Accessors for next free node in the free list. |
Node* next_free() { |
- ASSERT(state() == FREE); |
+ DCHECK(state() == FREE); |
return parameter_or_next_free_.next_free; |
} |
void set_next_free(Node* value) { |
- ASSERT(state() == FREE); |
+ DCHECK(state() == FREE); |
parameter_or_next_free_.next_free = value; |
} |
void MakeWeak(void* parameter, WeakCallback weak_callback) { |
- ASSERT(weak_callback != NULL); |
- ASSERT(state() != FREE); |
+ DCHECK(weak_callback != NULL); |
+ DCHECK(state() != FREE); |
CHECK(object_ != NULL); |
set_state(WEAK); |
set_parameter(parameter); |
@@ -214,7 +214,7 @@ class GlobalHandles::Node { |
} |
void* ClearWeakness() { |
- ASSERT(state() != FREE); |
+ DCHECK(state() != FREE); |
void* p = parameter(); |
set_state(NORMAL); |
set_parameter(NULL); |
@@ -235,9 +235,9 @@ class GlobalHandles::Node { |
{ |
// Check that we are not passing a finalized external string to |
// the callback. |
- ASSERT(!object_->IsExternalAsciiString() || |
+ DCHECK(!object_->IsExternalAsciiString() || |
ExternalAsciiString::cast(object_)->resource() != NULL); |
- ASSERT(!object_->IsExternalTwoByteString() || |
+ DCHECK(!object_->IsExternalTwoByteString() || |
ExternalTwoByteString::cast(object_)->resource() != NULL); |
// Leaving V8. |
VMState<EXTERNAL> state(isolate); |
@@ -316,12 +316,12 @@ class GlobalHandles::NodeBlock { |
} |
Node* node_at(int index) { |
- ASSERT(0 <= index && index < kSize); |
+ DCHECK(0 <= index && index < kSize); |
return &nodes_[index]; |
} |
void IncreaseUses() { |
- ASSERT(used_nodes_ < kSize); |
+ DCHECK(used_nodes_ < kSize); |
if (used_nodes_++ == 0) { |
NodeBlock* old_first = global_handles_->first_used_block_; |
global_handles_->first_used_block_ = this; |
@@ -333,7 +333,7 @@ class GlobalHandles::NodeBlock { |
} |
void DecreaseUses() { |
- ASSERT(used_nodes_ > 0); |
+ DCHECK(used_nodes_ > 0); |
if (--used_nodes_ == 0) { |
if (next_used_ != NULL) next_used_->prev_used_ = prev_used_; |
if (prev_used_ != NULL) prev_used_->next_used_ = next_used_; |
@@ -371,7 +371,7 @@ GlobalHandles::NodeBlock* GlobalHandles::Node::FindBlock() { |
intptr_t ptr = reinterpret_cast<intptr_t>(this); |
ptr = ptr - index_ * sizeof(Node); |
NodeBlock* block = reinterpret_cast<NodeBlock*>(ptr); |
- ASSERT(block->node_at(index_) == this); |
+ DCHECK(block->node_at(index_) == this); |
return block; |
} |
@@ -405,12 +405,12 @@ class GlobalHandles::NodeIterator { |
bool done() const { return block_ == NULL; } |
Node* node() const { |
- ASSERT(!done()); |
+ DCHECK(!done()); |
return block_->node_at(index_); |
} |
void Advance() { |
- ASSERT(!done()); |
+ DCHECK(!done()); |
if (++index_ < NodeBlock::kSize) return; |
index_ = 0; |
block_ = block_->next_used(); |
@@ -450,7 +450,7 @@ Handle<Object> GlobalHandles::Create(Object* value) { |
first_block_ = new NodeBlock(this, first_block_); |
first_block_->PutNodesOnFreeList(&first_free_); |
} |
- ASSERT(first_free_ != NULL); |
+ DCHECK(first_free_ != NULL); |
// Take the first node in the free list. |
Node* result = first_free_; |
first_free_ = result->next_free(); |
@@ -465,7 +465,7 @@ Handle<Object> GlobalHandles::Create(Object* value) { |
Handle<Object> GlobalHandles::CopyGlobal(Object** location) { |
- ASSERT(location != NULL); |
+ DCHECK(location != NULL); |
return Node::FromLocation(location)->GetGlobalHandles()->Create(*location); |
} |
@@ -544,7 +544,7 @@ void GlobalHandles::IdentifyNewSpaceWeakIndependentHandles( |
WeakSlotCallbackWithHeap f) { |
for (int i = 0; i < new_space_nodes_.length(); ++i) { |
Node* node = new_space_nodes_[i]; |
- ASSERT(node->is_in_new_space_list()); |
+ DCHECK(node->is_in_new_space_list()); |
if ((node->is_independent() || node->is_partially_dependent()) && |
node->IsWeak() && f(isolate_->heap(), node->location())) { |
node->MarkPending(); |
@@ -556,7 +556,7 @@ void GlobalHandles::IdentifyNewSpaceWeakIndependentHandles( |
void GlobalHandles::IterateNewSpaceWeakIndependentRoots(ObjectVisitor* v) { |
for (int i = 0; i < new_space_nodes_.length(); ++i) { |
Node* node = new_space_nodes_[i]; |
- ASSERT(node->is_in_new_space_list()); |
+ DCHECK(node->is_in_new_space_list()); |
if ((node->is_independent() || node->is_partially_dependent()) && |
node->IsWeakRetainer()) { |
v->VisitPointer(node->location()); |
@@ -572,7 +572,7 @@ bool GlobalHandles::IterateObjectGroups(ObjectVisitor* v, |
bool any_group_was_visited = false; |
for (int i = 0; i < object_groups_.length(); i++) { |
ObjectGroup* entry = object_groups_.at(i); |
- ASSERT(entry != NULL); |
+ DCHECK(entry != NULL); |
Object*** objects = entry->objects; |
bool group_should_be_visited = false; |
@@ -616,13 +616,13 @@ int GlobalHandles::PostGarbageCollectionProcessing( |
// Process weak global handle callbacks. This must be done after the |
// GC is completely done, because the callbacks may invoke arbitrary |
// API functions. |
- ASSERT(isolate_->heap()->gc_state() == Heap::NOT_IN_GC); |
+ DCHECK(isolate_->heap()->gc_state() == Heap::NOT_IN_GC); |
const int initial_post_gc_processing_count = ++post_gc_processing_count_; |
int freed_nodes = 0; |
if (collector == SCAVENGER) { |
for (int i = 0; i < new_space_nodes_.length(); ++i) { |
Node* node = new_space_nodes_[i]; |
- ASSERT(node->is_in_new_space_list()); |
+ DCHECK(node->is_in_new_space_list()); |
if (!node->IsRetainer()) { |
// Free nodes do not have weak callbacks. Do not use them to compute |
// the freed_nodes. |
@@ -671,7 +671,7 @@ int GlobalHandles::PostGarbageCollectionProcessing( |
int last = 0; |
for (int i = 0; i < new_space_nodes_.length(); ++i) { |
Node* node = new_space_nodes_[i]; |
- ASSERT(node->is_in_new_space_list()); |
+ DCHECK(node->is_in_new_space_list()); |
if (node->IsRetainer()) { |
if (isolate_->heap()->InNewSpace(node->object())) { |
new_space_nodes_[last++] = node; |
@@ -818,7 +818,7 @@ void GlobalHandles::AddObjectGroup(Object*** handles, |
v8::RetainedObjectInfo* info) { |
#ifdef DEBUG |
for (size_t i = 0; i < length; ++i) { |
- ASSERT(!Node::FromLocation(handles[i])->is_independent()); |
+ DCHECK(!Node::FromLocation(handles[i])->is_independent()); |
} |
#endif |
if (length == 0) { |
@@ -849,9 +849,9 @@ void GlobalHandles::AddImplicitReferences(HeapObject** parent, |
Object*** children, |
size_t length) { |
#ifdef DEBUG |
- ASSERT(!Node::FromLocation(BitCast<Object**>(parent))->is_independent()); |
+ DCHECK(!Node::FromLocation(BitCast<Object**>(parent))->is_independent()); |
for (size_t i = 0; i < length; ++i) { |
- ASSERT(!Node::FromLocation(children[i])->is_independent()); |
+ DCHECK(!Node::FromLocation(children[i])->is_independent()); |
} |
#endif |
if (length == 0) return; |
@@ -863,13 +863,13 @@ void GlobalHandles::AddImplicitReferences(HeapObject** parent, |
void GlobalHandles::SetReferenceFromGroup(UniqueId id, Object** child) { |
- ASSERT(!Node::FromLocation(child)->is_independent()); |
+ DCHECK(!Node::FromLocation(child)->is_independent()); |
implicit_ref_connections_.Add(ObjectGroupConnection(id, child)); |
} |
void GlobalHandles::SetReference(HeapObject** parent, Object** child) { |
- ASSERT(!Node::FromLocation(child)->is_independent()); |
+ DCHECK(!Node::FromLocation(child)->is_independent()); |
ImplicitRefGroup* group = new ImplicitRefGroup(parent, 1); |
group->children[0] = child; |
implicit_ref_groups_.Add(group); |
@@ -1021,7 +1021,7 @@ EternalHandles::~EternalHandles() { |
void EternalHandles::IterateAllRoots(ObjectVisitor* visitor) { |
int limit = size_; |
for (int i = 0; i < blocks_.length(); i++) { |
- ASSERT(limit > 0); |
+ DCHECK(limit > 0); |
Object** block = blocks_[i]; |
visitor->VisitPointers(block, block + Min(limit, kSize)); |
limit -= kSize; |
@@ -1049,9 +1049,9 @@ void EternalHandles::PostGarbageCollectionProcessing(Heap* heap) { |
void EternalHandles::Create(Isolate* isolate, Object* object, int* index) { |
- ASSERT_EQ(kInvalidIndex, *index); |
+ DCHECK_EQ(kInvalidIndex, *index); |
if (object == NULL) return; |
- ASSERT_NE(isolate->heap()->the_hole_value(), object); |
+ DCHECK_NE(isolate->heap()->the_hole_value(), object); |
int block = size_ >> kShift; |
int offset = size_ & kMask; |
// need to resize |
@@ -1061,7 +1061,7 @@ void EternalHandles::Create(Isolate* isolate, Object* object, int* index) { |
MemsetPointer(next_block, the_hole, kSize); |
blocks_.Add(next_block); |
} |
- ASSERT_EQ(isolate->heap()->the_hole_value(), blocks_[block][offset]); |
+ DCHECK_EQ(isolate->heap()->the_hole_value(), blocks_[block][offset]); |
blocks_[block][offset] = object; |
if (isolate->heap()->InNewSpace(object)) { |
new_space_indices_.Add(size_); |