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 700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
711 // heap page. If so, find the start of that object and mark it | 711 // heap page. If so, find the start of that object and mark it |
712 // using the given Visitor. Otherwise do nothing. The pointer must | 712 // using the given Visitor. Otherwise do nothing. The pointer must |
713 // be within the same aligned blinkPageSize as the this-pointer. | 713 // be within the same aligned blinkPageSize as the this-pointer. |
714 // | 714 // |
715 // This is used during conservative stack scanning to | 715 // This is used during conservative stack scanning to |
716 // conservatively mark all objects that could be referenced from | 716 // conservatively mark all objects that could be referenced from |
717 // the stack. | 717 // the stack. |
718 virtual void checkAndMarkPointer(Visitor*, Address) = 0; | 718 virtual void checkAndMarkPointer(Visitor*, Address) = 0; |
719 virtual bool contains(Address) = 0; | 719 virtual bool contains(Address) = 0; |
720 | 720 |
721 #if ENABLE(GC_TRACING) | 721 #if ENABLE(GC_PROFILE_MARKING) |
722 virtual const GCInfo* findGCInfo(Address) = 0; | 722 virtual const GCInfo* findGCInfo(Address) = 0; |
723 #endif | 723 #endif |
724 | 724 |
725 Address address() { return reinterpret_cast<Address>(this); } | 725 Address address() { return reinterpret_cast<Address>(this); } |
726 PageMemory* storage() const { return m_storage; } | 726 PageMemory* storage() const { return m_storage; } |
727 ThreadState* threadState() const { return m_threadState; } | 727 ThreadState* threadState() const { return m_threadState; } |
728 const GCInfo* gcInfo() { return m_gcInfo; } | 728 const GCInfo* gcInfo() { return m_gcInfo; } |
729 virtual bool isLargeObject() { return false; } | 729 virtual bool isLargeObject() { return false; } |
730 virtual void markOrphaned() | 730 virtual void markOrphaned() |
731 { | 731 { |
(...skipping 16 matching lines...) Expand all Loading... |
748 // HeapPage header. We use some of the bits to determine | 748 // HeapPage header. We use some of the bits to determine |
749 // whether the page is part of a terminting thread or | 749 // whether the page is part of a terminting thread or |
750 // if the page is traced after being terminated (orphaned). | 750 // if the page is traced after being terminated (orphaned). |
751 uintptr_t m_terminating : 1; | 751 uintptr_t m_terminating : 1; |
752 uintptr_t m_tracedAfterOrphaned : 1; | 752 uintptr_t m_tracedAfterOrphaned : 1; |
753 }; | 753 }; |
754 | 754 |
755 } | 755 } |
756 | 756 |
757 #endif // ThreadState_h | 757 #endif // ThreadState_h |
OLD | NEW |