| 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 | 91 |
| 92 #define DECLARE_TRACE() DECLARE_TRACE_IMPL(EMPTY_MACRO_ARGUMENT) | 92 #define DECLARE_TRACE() DECLARE_TRACE_IMPL(EMPTY_MACRO_ARGUMENT) |
| 93 #define DECLARE_VIRTUAL_TRACE() DECLARE_TRACE_IMPL(virtual) | 93 #define DECLARE_VIRTUAL_TRACE() DECLARE_TRACE_IMPL(virtual) |
| 94 #define DEFINE_INLINE_TRACE() DEFINE_INLINE_TRACE_IMPL(EMPTY_MACRO_ARGUMENT) | 94 #define DEFINE_INLINE_TRACE() DEFINE_INLINE_TRACE_IMPL(EMPTY_MACRO_ARGUMENT) |
| 95 #define DEFINE_INLINE_VIRTUAL_TRACE() DEFINE_INLINE_TRACE_IMPL(virtual) | 95 #define DEFINE_INLINE_VIRTUAL_TRACE() DEFINE_INLINE_TRACE_IMPL(virtual) |
| 96 | 96 |
| 97 enum class VisitorMarkingMode { | 97 enum class VisitorMarkingMode { |
| 98 // This is a default visitor. This is used for GCType=GCWithSweep | 98 // This is a default visitor. This is used for GCType=GCWithSweep |
| 99 // and GCType=GCWithoutSweep. | 99 // and GCType=GCWithoutSweep. |
| 100 GlobalMarking, | 100 GlobalMarking, |
| 101 // This visitor does not trace objects outside the heap of the | |
| 102 // GCing thread. This is used for GCType=ThreadTerminationGC. | |
| 103 ThreadLocalMarking, | |
| 104 // This visitor just marks objects and ignores weak processing. | 101 // This visitor just marks objects and ignores weak processing. |
| 105 // This is used for GCType=TakeSnapshot. | 102 // This is used for GCType=TakeSnapshot. |
| 106 SnapshotMarking, | 103 SnapshotMarking, |
| 107 // This visitor is used to trace objects during weak processing. | 104 // This visitor is used to trace objects during weak processing. |
| 108 // This visitor is allowed to trace only already marked objects. | 105 // This visitor is allowed to trace only already marked objects. |
| 109 WeakProcessing, | 106 WeakProcessing, |
| 110 // Perform global marking along with preparing for additional sweep | 107 // Perform global marking along with preparing for additional sweep |
| 111 // compaction of heap arenas afterwards. Compared to the GlobalMarking | 108 // compaction of heap arenas afterwards. Compared to the GlobalMarking |
| 112 // visitor, this visitor will also register references to objects | 109 // visitor, this visitor will also register references to objects |
| 113 // that might be moved during arena compaction -- the compaction | 110 // that might be moved during arena compaction -- the compaction |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 | 318 |
| 322 static void markNoTracingCallback(Visitor*, void*); | 319 static void markNoTracingCallback(Visitor*, void*); |
| 323 | 320 |
| 324 ThreadState* const m_state; | 321 ThreadState* const m_state; |
| 325 const VisitorMarkingMode m_markingMode; | 322 const VisitorMarkingMode m_markingMode; |
| 326 }; | 323 }; |
| 327 | 324 |
| 328 } // namespace blink | 325 } // namespace blink |
| 329 | 326 |
| 330 #endif // Visitor_h | 327 #endif // Visitor_h |
| OLD | NEW |