Commit 99fe1831 authored by Sergio Villar Senin's avatar Sergio Villar Senin Committed by Commit Bot

Fix jumbo builds broken by ResurrectingPreFinalizer

ResurrectingPreFinalizer was defined in two different tests that may be packed
in the same jumbo file. They do not exactly belong to the same namespace (blink
and blink::anonymous) but the definition is ambiguous for the compiler.

Renamed it to HeapTestResurrectingPreFinalizer and moved to an anonymous
namespace, which is not strictly required, but it's a good practice.

Bug: 989452
Change-Id: I7717cf87a064e71fa4bc260f5a8add4f04045b6e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1728662Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Sergio Villar <svillar@igalia.com>
Cr-Commit-Position: refs/heads/master@{#682691}
parent 3da28dc6
......@@ -1566,9 +1566,11 @@ TEST(HeapDeathTest, PreFinalizerAllocationForbidden) {
}
#if DCHECK_IS_ON()
class ResurrectingPreFinalizer
: public GarbageCollected<ResurrectingPreFinalizer> {
USING_PRE_FINALIZER(ResurrectingPreFinalizer, Dispose);
namespace {
class HeapTestResurrectingPreFinalizer
: public GarbageCollected<HeapTestResurrectingPreFinalizer> {
USING_PRE_FINALIZER(HeapTestResurrectingPreFinalizer, Dispose);
public:
enum TestType {
......@@ -1598,9 +1600,9 @@ class ResurrectingPreFinalizer
HeapHashSet<WeakMember<LinkedObject>> hash_set_weak_member;
};
ResurrectingPreFinalizer(TestType test_type,
GlobalStorage* storage,
LinkedObject* object_that_dies)
HeapTestResurrectingPreFinalizer(TestType test_type,
GlobalStorage* storage,
LinkedObject* object_that_dies)
: test_type_(test_type),
storage_(storage),
object_that_dies_(object_that_dies) {}
......@@ -1632,29 +1634,31 @@ class ResurrectingPreFinalizer
Member<LinkedObject> object_that_dies_;
};
} // namespace
TEST(HeapDeathTest, DiesOnResurrectedHeapVectorMember) {
Persistent<ResurrectingPreFinalizer::GlobalStorage> storage(
MakeGarbageCollected<ResurrectingPreFinalizer::GlobalStorage>());
MakeGarbageCollected<ResurrectingPreFinalizer>(
ResurrectingPreFinalizer::kHeapVectorMember, storage.Get(),
Persistent<HeapTestResurrectingPreFinalizer::GlobalStorage> storage(
MakeGarbageCollected<HeapTestResurrectingPreFinalizer::GlobalStorage>());
MakeGarbageCollected<HeapTestResurrectingPreFinalizer>(
HeapTestResurrectingPreFinalizer::kHeapVectorMember, storage.Get(),
MakeGarbageCollected<LinkedObject>());
TestSupportingGC::PreciselyCollectGarbage();
}
TEST(HeapDeathTest, DiesOnResurrectedHeapHashSetMember) {
Persistent<ResurrectingPreFinalizer::GlobalStorage> storage(
MakeGarbageCollected<ResurrectingPreFinalizer::GlobalStorage>());
MakeGarbageCollected<ResurrectingPreFinalizer>(
ResurrectingPreFinalizer::kHeapHashSetMember, storage.Get(),
Persistent<HeapTestResurrectingPreFinalizer::GlobalStorage> storage(
MakeGarbageCollected<HeapTestResurrectingPreFinalizer::GlobalStorage>());
MakeGarbageCollected<HeapTestResurrectingPreFinalizer>(
HeapTestResurrectingPreFinalizer::kHeapHashSetMember, storage.Get(),
MakeGarbageCollected<LinkedObject>());
TestSupportingGC::PreciselyCollectGarbage();
}
TEST(HeapDeathTest, DiesOnResurrectedHeapHashSetWeakMember) {
Persistent<ResurrectingPreFinalizer::GlobalStorage> storage(
MakeGarbageCollected<ResurrectingPreFinalizer::GlobalStorage>());
MakeGarbageCollected<ResurrectingPreFinalizer>(
ResurrectingPreFinalizer::kHeapHashSetWeakMember, storage.Get(),
Persistent<HeapTestResurrectingPreFinalizer::GlobalStorage> storage(
MakeGarbageCollected<HeapTestResurrectingPreFinalizer::GlobalStorage>());
MakeGarbageCollected<HeapTestResurrectingPreFinalizer>(
HeapTestResurrectingPreFinalizer::kHeapHashSetWeakMember, storage.Get(),
MakeGarbageCollected<LinkedObject>());
TestSupportingGC::PreciselyCollectGarbage();
}
......
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