diff options
author | Michaƫl Zasso <targos@protonmail.com> | 2018-01-24 20:16:06 +0100 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2018-01-24 15:02:20 -0800 |
commit | 4c4af643e5042d615a60c6bbc05aee9d81b903e5 (patch) | |
tree | 3fb0a97988fe4439ae3ae06f26915d1dcf8cab92 /deps/v8/src/visitors.h | |
parent | fa9f31a4fda5a3782c652e56e394465805ebb50f (diff) | |
download | android-node-v8-4c4af643e5042d615a60c6bbc05aee9d81b903e5.tar.gz android-node-v8-4c4af643e5042d615a60c6bbc05aee9d81b903e5.tar.bz2 android-node-v8-4c4af643e5042d615a60c6bbc05aee9d81b903e5.zip |
deps: update V8 to 6.4.388.40
PR-URL: https://github.com/nodejs/node/pull/17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Diffstat (limited to 'deps/v8/src/visitors.h')
-rw-r--r-- | deps/v8/src/visitors.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/deps/v8/src/visitors.h b/deps/v8/src/visitors.h index baf989182b..7696df8faf 100644 --- a/deps/v8/src/visitors.h +++ b/deps/v8/src/visitors.h @@ -10,6 +10,7 @@ namespace v8 { namespace internal { +class CodeDataContainer; class Object; #define ROOT_ID_LIST(V) \ @@ -75,6 +76,44 @@ class RootVisitor BASE_EMBEDDED { virtual void Synchronize(VisitorSynchronization::SyncTag tag) {} }; +// Abstract base class for visiting, and optionally modifying, the +// pointers contained in Objects. Used in GC and serialization/deserialization. +class ObjectVisitor BASE_EMBEDDED { + public: + virtual ~ObjectVisitor() {} + + // Visits a contiguous arrays of pointers in the half-open range + // [start, end). Any or all of the values may be modified on return. + virtual void VisitPointers(HeapObject* host, Object** start, + Object** end) = 0; + + // Handy shorthand for visiting a single pointer. + virtual void VisitPointer(HeapObject* host, Object** p) { + VisitPointers(host, p, p + 1); + } + + // To allow lazy clearing of inline caches the visitor has + // a rich interface for iterating over Code objects ... + + // Visits a code target in the instruction stream. + virtual void VisitCodeTarget(Code* host, RelocInfo* rinfo); + + // Visits a runtime entry in the instruction stream. + virtual void VisitRuntimeEntry(Code* host, RelocInfo* rinfo) {} + + // Visit pointer embedded into a code object. + virtual void VisitEmbeddedPointer(Code* host, RelocInfo* rinfo); + + // Visits an external reference embedded into a code object. + virtual void VisitExternalReference(Code* host, RelocInfo* rinfo) {} + + // Visits an external reference. + virtual void VisitExternalReference(Foreign* host, Address* p) {} + + // Visits an (encoded) internal reference. + virtual void VisitInternalReference(Code* host, RelocInfo* rinfo) {} +}; + } // namespace internal } // namespace v8 |