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

Side by Side Diff: include/v8.h

Issue 1900953003: Remove isolate arg from EmbedderHeapTracer methods. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 8 months 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
« no previous file with comments | « no previous file | src/heap/mark-compact.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** \mainpage V8 API Reference Guide 5 /** \mainpage V8 API Reference Guide
6 * 6 *
7 * V8 is Google's open source JavaScript engine. 7 * V8 is Google's open source JavaScript engine.
8 * 8 *
9 * This set of documents provides reference material generated from the 9 * This set of documents provides reference material generated from the
10 * V8 header file, include/v8.h. 10 * V8 header file, include/v8.h.
(...skipping 5395 matching lines...) Expand 10 before | Expand all | Expand 10 after
5406 */ 5406 */
5407 enum class MemoryPressureLevel { kNone, kModerate, kCritical }; 5407 enum class MemoryPressureLevel { kNone, kModerate, kCritical };
5408 5408
5409 /** 5409 /**
5410 * Interface for tracing through the embedder heap. During the v8 garbage 5410 * Interface for tracing through the embedder heap. During the v8 garbage
5411 * collection, v8 collects hidden fields of all potential wrappers, and at the 5411 * collection, v8 collects hidden fields of all potential wrappers, and at the
5412 * end of its marking phase iterates the collection and asks the embedder to 5412 * end of its marking phase iterates the collection and asks the embedder to
5413 * trace through its heap and call PersistentBase::RegisterExternalReference on 5413 * trace through its heap and call PersistentBase::RegisterExternalReference on
5414 * each js object reachable from any of the given wrappers. 5414 * each js object reachable from any of the given wrappers.
5415 * 5415 *
5416 * Before the first call to the TraceWrappersFrom function v8 will call 5416 * Before the first call to the TraceWrappersFrom function TracePrologue will be
5417 * TracePrologue. When the v8 garbage collection is finished, v8 will call 5417 * called. When the garbage collection cycle is finished, TraceEpilogue will be
5418 * TraceEpilogue. 5418 * called.
5419 */ 5419 */
5420 class EmbedderHeapTracer { 5420 class EmbedderHeapTracer {
5421 public: 5421 public:
5422 /** 5422 /**
5423 * V8 will call this method at the beginning of the gc cycle. 5423 * V8 will call this method at the beginning of the gc cycle.
5424 */ 5424 */
5425 virtual void TracePrologue(Isolate* isolate) = 0; 5425 virtual void TracePrologue() = 0;
5426
5427 /** 5426 /**
5428 * V8 will call this method with internal fields of a potential wrappers. 5427 * V8 will call this method with internal fields of a potential wrappers.
5429 * Embedder is expected to trace its heap (synchronously) and call 5428 * Embedder is expected to trace its heap (synchronously) and call
5430 * PersistentBase::RegisterExternalReference() on all wrappers reachable from 5429 * PersistentBase::RegisterExternalReference() on all wrappers reachable from
5431 * any of the given wrappers. 5430 * any of the given wrappers.
5432 */ 5431 */
5433 virtual void TraceWrappersFrom( 5432 virtual void TraceWrappersFrom(
5434 Isolate* isolate,
5435 const std::vector<std::pair<void*, void*> >& internal_fields) = 0; 5433 const std::vector<std::pair<void*, void*> >& internal_fields) = 0;
5436 /** 5434 /**
5437 * V8 will call this method at the end of the gc cycle. Allocation is *not* 5435 * V8 will call this method at the end of the gc cycle. Allocation is *not*
5438 * allowed in the TraceEpilogue. 5436 * allowed in the TraceEpilogue.
5439 */ 5437 */
5440 virtual void TraceEpilogue(Isolate* isolate) = 0; 5438 virtual void TraceEpilogue() = 0;
5441 5439
5442 protected: 5440 protected:
5443 virtual ~EmbedderHeapTracer() = default; 5441 virtual ~EmbedderHeapTracer() = default;
5444 }; 5442 };
5445 5443
5446 /** 5444 /**
5447 * Isolate represents an isolated instance of the V8 engine. V8 isolates have 5445 * Isolate represents an isolated instance of the V8 engine. V8 isolates have
5448 * completely separate states. Objects from one isolate must not be used in 5446 * completely separate states. Objects from one isolate must not be used in
5449 * other isolates. The embedder can create multiple isolates and use them in 5447 * other isolates. The embedder can create multiple isolates and use them in
5450 * parallel in multiple threads. An isolate can be entered by at most one 5448 * parallel in multiple threads. An isolate can be entered by at most one
(...skipping 3322 matching lines...) Expand 10 before | Expand all | Expand 10 after
8773 */ 8771 */
8774 8772
8775 8773
8776 } // namespace v8 8774 } // namespace v8
8777 8775
8778 8776
8779 #undef TYPE_CHECK 8777 #undef TYPE_CHECK
8780 8778
8781 8779
8782 #endif // INCLUDE_V8_H_ 8780 #endif // INCLUDE_V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/heap/mark-compact.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698