| 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 |