Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(197)

Side by Side Diff: Source/platform/heap/ThreadState.h

Issue 744103003: Oilpan: Implement bitmap marking Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/platform/heap/Heap.cpp ('k') | Source/platform/heap/ThreadState.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 862 matching lines...) Expand 10 before | Expand all | Expand 10 after
873 // heap page. If so, find the start of that object and mark it 873 // heap page. If so, find the start of that object and mark it
874 // using the given Visitor. Otherwise do nothing. The pointer must 874 // using the given Visitor. Otherwise do nothing. The pointer must
875 // be within the same aligned blinkPageSize as the this-pointer. 875 // be within the same aligned blinkPageSize as the this-pointer.
876 // 876 //
877 // This is used during conservative stack scanning to 877 // This is used during conservative stack scanning to
878 // conservatively mark all objects that could be referenced from 878 // conservatively mark all objects that could be referenced from
879 // the stack. 879 // the stack.
880 virtual void checkAndMarkPointer(Visitor*, Address) = 0; 880 virtual void checkAndMarkPointer(Visitor*, Address) = 0;
881 virtual bool contains(Address) = 0; 881 virtual bool contains(Address) = 0;
882 882
883 virtual void markObject(Address) = 0;
884 virtual bool objectIsMarked(Address) = 0;
885 virtual void clearObjectMarkBitMap() = 0;
886
883 #if ENABLE(GC_PROFILE_MARKING) 887 #if ENABLE(GC_PROFILE_MARKING)
884 virtual const GCInfo* findGCInfo(Address) = 0; 888 virtual const GCInfo* findGCInfo(Address) = 0;
885 #endif 889 #endif
886 890
887 Address address() { return reinterpret_cast<Address>(this); } 891 Address address() { return reinterpret_cast<Address>(this); }
888 PageMemory* storage() const { return m_storage; } 892 PageMemory* storage() const { return m_storage; }
889 ThreadState* threadState() const { return m_threadState; } 893 ThreadState* threadState() const { return m_threadState; }
890 const GCInfo* gcInfo() { return m_gcInfo; } 894 const GCInfo* gcInfo() { return m_gcInfo; }
891 virtual bool isLargeObject() { return false; } 895 virtual bool isLargeObject() { return false; }
892 virtual void markOrphaned(); 896 virtual void markOrphaned();
(...skipping 15 matching lines...) Expand all
908 // whether the page is part of a terminting thread or 912 // whether the page is part of a terminting thread or
909 // if the page is traced after being terminated (orphaned). 913 // if the page is traced after being terminated (orphaned).
910 uintptr_t m_terminating : 1; 914 uintptr_t m_terminating : 1;
911 uintptr_t m_tracedAfterOrphaned : 1; 915 uintptr_t m_tracedAfterOrphaned : 1;
912 uintptr_t m_promptlyFreedSize : 17; // == blinkPageSizeLog2 916 uintptr_t m_promptlyFreedSize : 17; // == blinkPageSizeLog2
913 }; 917 };
914 918
915 } // namespace blink 919 } // namespace blink
916 920
917 #endif // ThreadState_h 921 #endif // ThreadState_h
OLDNEW
« no previous file with comments | « Source/platform/heap/Heap.cpp ('k') | Source/platform/heap/ThreadState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698