Chromium Code Reviews| Index: src/heap/spaces-inl.h |
| diff --git a/src/heap/spaces-inl.h b/src/heap/spaces-inl.h |
| index 3023fbf51ead410fba6a14aaab99dff05e5acf61..7ff4d5f261e433276979a9a1ddbc8c1c62b6f05e 100644 |
| --- a/src/heap/spaces-inl.h |
| +++ b/src/heap/spaces-inl.h |
| @@ -178,6 +178,52 @@ void MemoryAllocator::UnprotectChunkFromPage(Page* page) { |
| #endif |
| +// ----------------------------------------------------------------------------- |
| +// SemiSpace |
| + |
| +bool SemiSpace::Contains(HeapObject* o) { |
| + return id_ == kToSpace |
| + ? MemoryChunk::FromAddress(o->address())->InToSpace() |
| + : MemoryChunk::FromAddress(o->address())->InFromSpace(); |
| +} |
| + |
| +bool SemiSpace::Contains(Object* o) { |
| + return o->IsHeapObject() && Contains(HeapObject::cast(o)); |
| +} |
| + |
| +bool SemiSpace::ContainsSlow(Address a) { |
|
Hannes Payer (out of office)
2016/02/08 16:05:40
This one is really slow and should be just used fo
Michael Lippautz
2016/02/08 18:00:38
Acknowledged.
|
| + NewSpacePageIterator it(this); |
| + while (it.has_next()) { |
| + if (it.next() == MemoryChunk::FromAddress(a)) return true; |
| + } |
| + return false; |
| +} |
| + |
| +// -------------------------------------------------------------------------- |
| +// NewSpace |
| + |
| +bool NewSpace::Contains(HeapObject* o) { |
| + return MemoryChunk::FromAddress(o->address())->InNewSpace(); |
| +} |
| + |
| +bool NewSpace::Contains(Object* o) { |
| + return o->IsHeapObject() && Contains(HeapObject::cast(o)); |
| +} |
| + |
| +bool NewSpace::ContainsSlow(Address a) { |
| + return from_space_.ContainsSlow(a) || to_space_.ContainsSlow(a); |
| +} |
| + |
| +bool NewSpace::ToSpaceContainsSlow(Address a) { |
| + return to_space_.ContainsSlow(a); |
| +} |
| + |
| +bool NewSpace::FromSpaceContainsSlow(Address a) { |
| + return from_space_.ContainsSlow(a); |
| +} |
| + |
| +bool NewSpace::ToSpaceContains(Object* o) { return to_space_.Contains(o); } |
| +bool NewSpace::FromSpaceContains(Object* o) { return from_space_.Contains(o); } |
| // -------------------------------------------------------------------------- |
| // AllocationResult |