OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 m_endOfStack = endOfStack; | 459 m_endOfStack = endOfStack; |
460 } | 460 } |
461 | 461 |
462 // Get one of the heap structures for this thread. | 462 // Get one of the heap structures for this thread. |
463 // | 463 // |
464 // The heap is split into multiple heap parts based on object | 464 // The heap is split into multiple heap parts based on object |
465 // types. To get the index for a given type, use | 465 // types. To get the index for a given type, use |
466 // HeapTypeTrait<Type>::index. | 466 // HeapTypeTrait<Type>::index. |
467 ThreadHeap* heap(int index) const { return m_heaps[index]; } | 467 ThreadHeap* heap(int index) const { return m_heaps[index]; } |
468 | 468 |
469 #if ENABLE(ASSERT) | 469 #if ENABLE(ASSERT) || ENABLE(GC_PROFILE_MARKING) |
470 // Infrastructure to determine if an address is within one of the | 470 // Infrastructure to determine if an address is within one of the |
471 // address ranges for the Blink heap. If the address is in the Blink | 471 // address ranges for the Blink heap. If the address is in the Blink |
472 // heap the containing heap page is returned. | 472 // heap the containing heap page is returned. |
473 BaseHeapPage* findPageFromAddress(Address); | 473 BaseHeapPage* findPageFromAddress(Address); |
474 BaseHeapPage* findPageFromAddress(void* pointer) { return findPageFromAddres
s(reinterpret_cast<Address>(pointer)); } | 474 BaseHeapPage* findPageFromAddress(void* pointer) { return findPageFromAddres
s(reinterpret_cast<Address>(pointer)); } |
475 #endif | 475 #endif |
476 | 476 |
477 // List of persistent roots allocated on the given thread. | 477 // List of persistent roots allocated on the given thread. |
478 PersistentNode* roots() const { return m_persistents.get(); } | 478 PersistentNode* roots() const { return m_persistents.get(); } |
479 | 479 |
(...skipping 10 matching lines...) Expand all Loading... |
490 void visitAsanFakeStackForPointer(Visitor*, Address); | 490 void visitAsanFakeStackForPointer(Visitor*, Address); |
491 | 491 |
492 // Visit all persistents allocated on this thread. | 492 // Visit all persistents allocated on this thread. |
493 void visitPersistents(Visitor*); | 493 void visitPersistents(Visitor*); |
494 | 494 |
495 #if ENABLE(GC_PROFILE_MARKING) | 495 #if ENABLE(GC_PROFILE_MARKING) |
496 const GCInfo* findGCInfo(Address); | 496 const GCInfo* findGCInfo(Address); |
497 static const GCInfo* findGCInfoFromAllThreads(Address); | 497 static const GCInfo* findGCInfoFromAllThreads(Address); |
498 #endif | 498 #endif |
499 | 499 |
| 500 #if ENABLE(GC_PROFILE_FREE_LIST) |
| 501 void snapshotFreeListIfNecessary(); |
| 502 void snapshotFreeList(); |
| 503 #endif |
| 504 |
500 #if ENABLE(GC_PROFILE_HEAP) | 505 #if ENABLE(GC_PROFILE_HEAP) |
501 struct SnapshotInfo { | 506 struct SnapshotInfo { |
502 ThreadState* state; | 507 ThreadState* state; |
503 | 508 |
504 size_t freeSize; | 509 size_t freeSize; |
505 size_t pageCount; | 510 size_t pageCount; |
506 | 511 |
507 // Map from base-classes to a snapshot class-ids (used as index below). | 512 // Map from base-classes to a snapshot class-ids (used as index below). |
508 HashMap<const GCInfo*, size_t> classTags; | 513 HashMap<const GCInfo*, size_t> classTags; |
509 | 514 |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 m_locked = false; | 730 m_locked = false; |
726 } | 731 } |
727 | 732 |
728 MutexBase& m_mutex; | 733 MutexBase& m_mutex; |
729 bool m_locked; | 734 bool m_locked; |
730 }; | 735 }; |
731 | 736 |
732 } // namespace blink | 737 } // namespace blink |
733 | 738 |
734 #endif // ThreadState_h | 739 #endif // ThreadState_h |
OLD | NEW |