Commit 2680c3e0 authored by Keishi Hattori's avatar Keishi Hattori Committed by Commit Bot

Oilpan: Remove PersistentHeapCollection support from blink_gc_plugin

PersistentHeapCollection was removed from the code base. This removes support from blink_gc_plugin.

Bug: None
Change-Id: I7adfa680843f12a3fbd3040b7fae95c7826c9fe8
Reviewed-on: https://chromium-review.googlesource.com/1245082Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Keishi Hattori <keishi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594285}
parent 688e5dd8
......@@ -56,7 +56,7 @@ void MightBeCollectedVisitor::VisitMember(Member* edge) {
void MightBeCollectedVisitor::VisitCollection(Collection* edge) {
if (edge->on_heap() && !is_eagerly_finalized_) {
might_be_collected_ = !edge->is_root();
might_be_collected_ = true;
} else {
edge->AcceptMembers(this);
}
......
......@@ -46,8 +46,3 @@ void CheckGCRootsVisitor::VisitValue(Value* edge) {
void CheckGCRootsVisitor::VisitPersistent(Persistent* edge) {
gc_roots_.push_back(current_);
}
void CheckGCRootsVisitor::AtCollection(Collection* edge) {
if (edge->is_root())
gc_roots_.push_back(current_);
}
......@@ -27,7 +27,6 @@ class CheckGCRootsVisitor : public RecursiveEdgeVisitor {
void VisitValue(Value* edge) override;
void VisitPersistent(Persistent* edge) override;
void AtCollection(Collection* edge) override;
private:
RootPath current_;
......
......@@ -79,24 +79,10 @@ class Config {
}
static bool IsGCCollection(const std::string& name) {
return name == "HeapVector" ||
name == "HeapDeque" ||
name == "HeapHashSet" ||
name == "HeapListHashSet" ||
name == "HeapLinkedHashSet" ||
name == "HeapHashCountedSet" ||
name == "HeapHashMap" ||
IsPersistentGCCollection(name);
}
static bool IsPersistentGCCollection(const std::string& name) {
return name == "PersistentHeapVector" ||
name == "PersistentHeapDeque" ||
name == "PersistentHeapHashSet" ||
name == "PersistentHeapListHashSet" ||
name == "PersistentHeapLinkedHashSet" ||
name == "PersistentHeapHashCountedSet" ||
name == "PersistentHeapHashMap";
return name == "HeapVector" || name == "HeapDeque" ||
name == "HeapHashSet" || name == "HeapListHashSet" ||
name == "HeapLinkedHashSet" || name == "HeapHashCountedSet" ||
name == "HeapHashMap";
}
static bool IsGCCollectionWithUnsafeIterator(const std::string& name) {
......
......@@ -226,10 +226,7 @@ class CrossThreadPersistent : public PtrEdge {
class Collection : public Edge {
public:
typedef std::vector<Edge*> Members;
Collection(RecordInfo* info, bool on_heap, bool is_root)
: info_(info),
on_heap_(on_heap),
is_root_(is_root) {}
Collection(RecordInfo* info, bool on_heap) : info_(info), on_heap_(on_heap) {}
~Collection() {
for (Members::iterator it = members_.begin(); it != members_.end(); ++it) {
assert(*it && "Collection-edge members must be non-null");
......@@ -237,9 +234,8 @@ class Collection : public Edge {
}
}
bool IsCollection() override { return true; }
LivenessKind Kind() override { return is_root_ ? kRoot : kStrong; }
LivenessKind Kind() override { return kStrong; }
bool on_heap() { return on_heap_; }
bool is_root() { return is_root_; }
Members& members() { return members_; }
void Accept(EdgeVisitor* visitor) override { visitor->VisitCollection(this); }
void AcceptMembers(EdgeVisitor* visitor) {
......@@ -248,8 +244,6 @@ class Collection : public Edge {
}
bool NeedsFinalization() override;
TracingStatus NeedsTracing(NeedsTracingOption) override {
if (is_root_)
return TracingStatus::Unneeded();
if (on_heap_)
return TracingStatus::Needed();
// For off-heap collections, determine tracing status of members.
......@@ -265,7 +259,6 @@ class Collection : public Edge {
RecordInfo* info_;
Members members_;
bool on_heap_;
bool is_root_;
};
// An iterator edge is a direct edge to some iterator type.
......
......@@ -703,12 +703,11 @@ Edge* RecordInfo::CreateEdge(const Type* type) {
if (Config::IsGCCollection(info->name()) ||
Config::IsWTFCollection(info->name())) {
bool is_root = Config::IsPersistentGCCollection(info->name());
bool on_heap = is_root || info->IsHeapAllocatedCollection();
bool on_heap = info->IsHeapAllocatedCollection();
size_t count = Config::CollectionDimension(info->name());
if (!info->GetTemplateArgs(count, &args))
return 0;
Collection* edge = new Collection(info, on_heap, is_root);
Collection* edge = new Collection(info, on_heap);
for (TemplateArgs::iterator it = args.begin(); it != args.end(); ++it) {
if (Edge* member = CreateEdge(*it)) {
edge->members().push_back(member);
......
......@@ -277,9 +277,6 @@ class HeapHashCountedSet : public HashCountedSet<T, void, void, HeapAllocator> {
template<typename K, typename V>
class HeapHashMap : public HashMap<K, V, void, void, void, HeapAllocator> { };
template<typename T>
class PersistentHeapVector : public Vector<T, 0, HeapAllocator> { };
class Visitor {
public:
template <typename T, void (T::*method)(Visitor*)>
......
......@@ -23,7 +23,7 @@ public:
private:
PartObject m_part;
HeapVector<PartObject> m_parts;
PersistentHeapVector<Member<HeapObject> > m_objs;
Persistent<HeapVector<Member<HeapObject>>> m_objs;
WeakPersistent<HeapObject> m_weakPersistent;
};
......
......@@ -21,7 +21,7 @@ class HeapObject : public GarbageCollected<HeapObject> {
class HeapObject : public GarbageCollected<HeapObject> {
^
./persistent_field_in_gc_managed_class.h:26:5: note: [blink-gc] Field 'm_objs' defining a GC root declared here:
PersistentHeapVector<Member<HeapObject> > m_objs;
Persistent<HeapVector<Member<HeapObject>>> m_objs;
^
./persistent_field_in_gc_managed_class.h:20:1: warning: [blink-gc] Class 'HeapObject' contains GC root in field 'm_weakPersistent'.
class HeapObject : public GarbageCollected<HeapObject> {
......@@ -32,6 +32,9 @@ class HeapObject : public GarbageCollected<HeapObject> {
./persistent_field_in_gc_managed_class.h:20:1: warning: [blink-gc] Class 'HeapObject' requires finalization.
class HeapObject : public GarbageCollected<HeapObject> {
^
./persistent_field_in_gc_managed_class.h:26:5: note: [blink-gc] Field 'm_objs' requiring finalization declared here:
Persistent<HeapVector<Member<HeapObject>>> m_objs;
^
./persistent_field_in_gc_managed_class.h:27:5: note: [blink-gc] Field 'm_weakPersistent' requiring finalization declared here:
WeakPersistent<HeapObject> m_weakPersistent;
^
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment