Assert that independent handles do not participate in grouping.
Review URL: http://codereview.chromium.org/7044007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
b7e685ffe9
commit
35211e959e
@ -619,6 +619,11 @@ void GlobalHandles::Print() {
|
|||||||
void GlobalHandles::AddObjectGroup(Object*** handles,
|
void GlobalHandles::AddObjectGroup(Object*** handles,
|
||||||
size_t length,
|
size_t length,
|
||||||
v8::RetainedObjectInfo* info) {
|
v8::RetainedObjectInfo* info) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
for (size_t i = 0; i < length; ++i) {
|
||||||
|
ASSERT(!Node::FromLocation(handles[i])->independent_);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (length == 0) {
|
if (length == 0) {
|
||||||
if (info != NULL) info->Dispose();
|
if (info != NULL) info->Dispose();
|
||||||
return;
|
return;
|
||||||
@ -630,6 +635,12 @@ void GlobalHandles::AddObjectGroup(Object*** handles,
|
|||||||
void GlobalHandles::AddImplicitReferences(HeapObject** parent,
|
void GlobalHandles::AddImplicitReferences(HeapObject** parent,
|
||||||
Object*** children,
|
Object*** children,
|
||||||
size_t length) {
|
size_t length) {
|
||||||
|
#ifdef DEBUG
|
||||||
|
ASSERT(!Node::FromLocation(BitCast<Object**>(parent))->independent_);
|
||||||
|
for (size_t i = 0; i < length; ++i) {
|
||||||
|
ASSERT(!Node::FromLocation(children[i])->independent_);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (length == 0) return;
|
if (length == 0) return;
|
||||||
implicit_ref_groups_.Add(ImplicitRefGroup::New(parent, children, length));
|
implicit_ref_groups_.Add(ImplicitRefGroup::New(parent, children, length));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user