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

Unified Diff: src/global-handles.h

Issue 13341: Improve mark-compact object grouping interface. (Closed)
Patch Set: Tests. Created 12 years 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 | « src/api.cc ('k') | src/global-handles.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/global-handles.h
diff --git a/src/global-handles.h b/src/global-handles.h
index 78fb3a1147f9ea0489b25f1de1bb14d03ed8d3bf..c5f44503ba5de7043d05e427bfd0fd0e5ebda370 100644
--- a/src/global-handles.h
+++ b/src/global-handles.h
@@ -41,15 +41,14 @@ namespace v8 { namespace internal {
// Callback function on handling weak global handles.
// typedef bool (*WeakSlotCallback)(Object** pointer);
-// An object group is indexed by an id. An object group is treated like
-// a single JS object: if one of object in the group is alive,
-// all objects in the same group are considered alive.
+// An object group is treated like a single JS object: if one of object in
+// the group is alive, all objects in the same group are considered alive.
// An object group is used to simulate object relationship in a DOM tree.
class ObjectGroup : public Malloced {
public:
- explicit ObjectGroup(void* id) : id_(id), objects_(4) {}
+ ObjectGroup() : objects_(4) {}
+ explicit ObjectGroup(size_t capacity) : objects_(capacity) {}
- void* id_;
List<Object**> objects_;
};
@@ -102,15 +101,13 @@ class GlobalHandles : public AllStatic {
// Mark the weak pointers based on the callback.
static void MarkWeakRoots(WeakSlotCallback f);
- // Add an object to a group indexed by an id.
+ // Add an object group.
// Should only used in GC callback function before a collection.
// All groups are destroyed after a mark-compact collection.
- static void AddToGroup(void* id, Object** location);
+ static void AddGroup(Object*** handles, size_t length);
// Returns the object groups.
- static List<ObjectGroup*>& ObjectGroups() {
- return object_groups_;
- }
+ static List<ObjectGroup*>* ObjectGroups();
// Remove bags, this should only happen after GC.
static void RemoveObjectGroups();
@@ -143,9 +140,6 @@ class GlobalHandles : public AllStatic {
static Node* first_free_;
static Node* first_free() { return first_free_; }
static void set_first_free(Node* value) { first_free_ = value; }
-
- // A list of object groups.
- static List<ObjectGroup*> object_groups_;
};
« no previous file with comments | « src/api.cc ('k') | src/global-handles.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698