OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/heap/spaces.h" | 5 #include "src/heap/spaces.h" |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/base/platform/platform.h" | 8 #include "src/base/platform/platform.h" |
9 #include "src/full-codegen/full-codegen.h" | 9 #include "src/full-codegen/full-codegen.h" |
10 #include "src/heap/slots-buffer.h" | 10 #include "src/heap/slots-buffer.h" |
(...skipping 3015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3026 MemoryChunk* chunk = MemoryChunk::FromAddress(address); | 3026 MemoryChunk* chunk = MemoryChunk::FromAddress(address); |
3027 | 3027 |
3028 bool owned = (chunk->owner() == this); | 3028 bool owned = (chunk->owner() == this); |
3029 | 3029 |
3030 SLOW_DCHECK(!owned || FindObject(address)->IsHeapObject()); | 3030 SLOW_DCHECK(!owned || FindObject(address)->IsHeapObject()); |
3031 | 3031 |
3032 return owned; | 3032 return owned; |
3033 } | 3033 } |
3034 | 3034 |
3035 | 3035 |
| 3036 bool LargeObjectSpace::Contains(Address address) { |
| 3037 return FindPage(address) != NULL; |
| 3038 } |
| 3039 |
| 3040 |
3036 #ifdef VERIFY_HEAP | 3041 #ifdef VERIFY_HEAP |
3037 // We do not assume that the large object iterator works, because it depends | 3042 // We do not assume that the large object iterator works, because it depends |
3038 // on the invariants we are checking during verification. | 3043 // on the invariants we are checking during verification. |
3039 void LargeObjectSpace::Verify() { | 3044 void LargeObjectSpace::Verify() { |
3040 for (LargePage* chunk = first_page_; chunk != NULL; | 3045 for (LargePage* chunk = first_page_; chunk != NULL; |
3041 chunk = chunk->next_page()) { | 3046 chunk = chunk->next_page()) { |
3042 // Each chunk contains an object that starts at the large object page's | 3047 // Each chunk contains an object that starts at the large object page's |
3043 // object area start. | 3048 // object area start. |
3044 HeapObject* object = chunk->GetObject(); | 3049 HeapObject* object = chunk->GetObject(); |
3045 Page* page = Page::FromAddress(object->address()); | 3050 Page* page = Page::FromAddress(object->address()); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3144 object->ShortPrint(); | 3149 object->ShortPrint(); |
3145 PrintF("\n"); | 3150 PrintF("\n"); |
3146 } | 3151 } |
3147 printf(" --------------------------------------\n"); | 3152 printf(" --------------------------------------\n"); |
3148 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); | 3153 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); |
3149 } | 3154 } |
3150 | 3155 |
3151 #endif // DEBUG | 3156 #endif // DEBUG |
3152 } // namespace internal | 3157 } // namespace internal |
3153 } // namespace v8 | 3158 } // namespace v8 |
OLD | NEW |