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

Unified Diff: include/v8.h

Issue 14007008: New GC APIs, try 2. (Closed) Base URL: git://github.com/v8/v8.git@master
Patch Set: . Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/api.cc » ('j') | src/global-handles.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/v8.h
diff --git a/include/v8.h b/include/v8.h
index e1c020310bcd08e2cb75cd54aab7da52ab499be2..3d3c93d7e337f8867da5bb6c9c104ce8cdc0503c 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -144,6 +144,28 @@ class Isolate;
class Object;
}
+// Generic-purpose unique identifier.
Michael Starzinger 2013/04/22 11:34:51 nit: Can we turn that into a Doxygen comment (i.e.
marja 2013/04/22 13:49:07 Done.
+class UniqueId {
+ public:
+ explicit UniqueId(intptr_t data)
+ : data_(data) {}
+
+ bool operator==(const UniqueId& other) const {
+ return data_ == other.data_;
+ }
+
+ bool operator!=(const UniqueId& other) const {
+ return data_ != other.data_;
+ }
+
+ bool operator<(const UniqueId& other) const {
+ return data_ < other.data_;
+ }
+
+ private:
+ intptr_t data_;
+};
+
// --- Weak Handles ---
@@ -3514,6 +3536,8 @@ class V8EXPORT V8 {
* for partially dependent handles only.
* See v8-profiler.h for RetainedObjectInfo interface description.
*/
+ // TODO(marja): deprecate AddObjectGroup. Use SetObjectGroupId and
+ // SetRetainedObjectInfo instead.
static void AddObjectGroup(Persistent<Value>* objects,
size_t length,
RetainedObjectInfo* info = NULL);
@@ -3522,6 +3546,14 @@ class V8EXPORT V8 {
size_t length,
RetainedObjectInfo* info = NULL);
+ static void SetObjectGroupId(Isolate* isolate,
yurys 2013/04/22 12:10:43 Since these methods are new why not make them inst
marja 2013/04/22 13:49:07 Done.
+ const Persistent<Value>& object,
+ UniqueId id);
+
+ static void SetRetainedObjectInfo(Isolate* isolate,
yurys 2013/04/22 12:05:46 As discussed offline, this method should be on v8:
marja 2013/04/22 13:49:07 Done.
+ UniqueId id,
+ RetainedObjectInfo* info);
+
/**
* Allows the host application to declare implicit references between
* the objects: if |parent| is alive, all |children| are alive too.
@@ -3529,11 +3561,24 @@ class V8EXPORT V8 {
* are removed. It is intended to be used in the before-garbage-collection
* callback function.
*/
+ // TODO(marja): Deprecate AddImplicitReferences. Use AddImplicitReference
+ // instead.
static void AddImplicitReferences(Persistent<Object> parent,
Persistent<Value>* children,
size_t length);
/**
+ * Allows the host application to declare implicit references. If the
+ * representative object of the object group (identified by id) is alive, the
+ * children are alive too. After each garbage collection, all implicit
+ * references are removed. It is intended to be used in the
+ * before-garbage-collection callback function.
+ */
+ static void AddImplicitReference(Isolate* isolate,
+ UniqueId id,
+ const Persistent<Value>& object);
+
+ /**
* Initializes from snapshot if possible. Otherwise, attempts to
* initialize from scratch. This function is called implicitly if
* you use the API without calling it first.
« no previous file with comments | « no previous file | src/api.cc » ('j') | src/global-handles.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698