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

Side by Side Diff: Source/platform/heap/HeapTest.cpp

Issue 403333002: [oilpan]: Remove support for tracing off-heap hashmaps. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « Source/platform/Supplementable.h ('k') | Source/platform/heap/Visitor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 2008 matching lines...) Expand 10 before | Expand all | Expand 10 after
2019 static const int iterations = 300; 2019 static const int iterations = 300;
2020 static const int deadWrappers = 1800; 2020 static const int deadWrappers = 1800;
2021 2021
2022 OffHeapContainer() 2022 OffHeapContainer()
2023 { 2023 {
2024 for (int i = 0; i < iterations; i++) { 2024 for (int i = 0; i < iterations; i++) {
2025 m_deque1.append(ShouldBeTraced(IntWrapper::create(i))); 2025 m_deque1.append(ShouldBeTraced(IntWrapper::create(i)));
2026 m_vector1.append(ShouldBeTraced(IntWrapper::create(i))); 2026 m_vector1.append(ShouldBeTraced(IntWrapper::create(i)));
2027 m_deque2.append(IntWrapper::create(i)); 2027 m_deque2.append(IntWrapper::create(i));
2028 m_vector2.append(IntWrapper::create(i)); 2028 m_vector2.append(IntWrapper::create(i));
2029 m_hashMap.add(i + 103, IntWrapper::create(i));
2030 m_ownedVector.append(adoptPtr(new ShouldBeTraced(IntWrapper::create( i)))); 2029 m_ownedVector.append(adoptPtr(new ShouldBeTraced(IntWrapper::create( i))));
2031 } 2030 }
2032 2031
2033 Deque<ShouldBeTraced>::iterator d1Iterator(m_deque1.begin()); 2032 Deque<ShouldBeTraced>::iterator d1Iterator(m_deque1.begin());
2034 Vector<ShouldBeTraced>::iterator v1Iterator(m_vector1.begin()); 2033 Vector<ShouldBeTraced>::iterator v1Iterator(m_vector1.begin());
2035 Deque<Member<IntWrapper> >::iterator d2Iterator(m_deque2.begin()); 2034 Deque<Member<IntWrapper> >::iterator d2Iterator(m_deque2.begin());
2036 Vector<Member<IntWrapper> >::iterator v2Iterator(m_vector2.begin()); 2035 Vector<Member<IntWrapper> >::iterator v2Iterator(m_vector2.begin());
2037 HashMap<int, Member<IntWrapper> >::iterator mapIterator(m_hashMap.begin( ));
2038 Vector<OwnPtr<ShouldBeTraced> >::iterator ownedVectorIterator(m_ownedVec tor.begin()); 2036 Vector<OwnPtr<ShouldBeTraced> >::iterator ownedVectorIterator(m_ownedVec tor.begin());
2039 2037
2040 for (int i = 0; i < iterations; i++) { 2038 for (int i = 0; i < iterations; i++) {
2041 EXPECT_EQ(i, m_vector1[i].m_wrapper->value()); 2039 EXPECT_EQ(i, m_vector1[i].m_wrapper->value());
2042 EXPECT_EQ(i, m_vector2[i]->value()); 2040 EXPECT_EQ(i, m_vector2[i]->value());
2043 EXPECT_EQ(i, d1Iterator->m_wrapper->value()); 2041 EXPECT_EQ(i, d1Iterator->m_wrapper->value());
2044 EXPECT_EQ(i, v1Iterator->m_wrapper->value()); 2042 EXPECT_EQ(i, v1Iterator->m_wrapper->value());
2045 EXPECT_EQ(i, d2Iterator->get()->value()); 2043 EXPECT_EQ(i, d2Iterator->get()->value());
2046 EXPECT_EQ(i, v2Iterator->get()->value()); 2044 EXPECT_EQ(i, v2Iterator->get()->value());
2047 EXPECT_EQ(i, ownedVectorIterator->get()->m_wrapper->value()); 2045 EXPECT_EQ(i, ownedVectorIterator->get()->m_wrapper->value());
2048 int value = mapIterator->value.get()->value();
2049 EXPECT_LE(0, value);
2050 EXPECT_GT(iterations, value);
2051 ++d1Iterator; 2046 ++d1Iterator;
2052 ++v1Iterator; 2047 ++v1Iterator;
2053 ++d2Iterator; 2048 ++d2Iterator;
2054 ++v2Iterator; 2049 ++v2Iterator;
2055 ++mapIterator;
2056 ++ownedVectorIterator; 2050 ++ownedVectorIterator;
2057 } 2051 }
2058 EXPECT_EQ(d1Iterator, m_deque1.end()); 2052 EXPECT_EQ(d1Iterator, m_deque1.end());
2059 EXPECT_EQ(v1Iterator, m_vector1.end()); 2053 EXPECT_EQ(v1Iterator, m_vector1.end());
2060 EXPECT_EQ(d2Iterator, m_deque2.end()); 2054 EXPECT_EQ(d2Iterator, m_deque2.end());
2061 EXPECT_EQ(v2Iterator, m_vector2.end()); 2055 EXPECT_EQ(v2Iterator, m_vector2.end());
2062 EXPECT_EQ(mapIterator, m_hashMap.end());
2063 EXPECT_EQ(ownedVectorIterator, m_ownedVector.end()); 2056 EXPECT_EQ(ownedVectorIterator, m_ownedVector.end());
2064 } 2057 }
2065 2058
2066 void trace(Visitor* visitor) 2059 void trace(Visitor* visitor)
2067 { 2060 {
2068 visitor->trace(m_deque1); 2061 visitor->trace(m_deque1);
2069 visitor->trace(m_vector1); 2062 visitor->trace(m_vector1);
2070 visitor->trace(m_deque2); 2063 visitor->trace(m_deque2);
2071 visitor->trace(m_vector2); 2064 visitor->trace(m_vector2);
2072 visitor->trace(m_hashMap);
2073 visitor->trace(m_ownedVector); 2065 visitor->trace(m_ownedVector);
2074 } 2066 }
2075 2067
2076 Deque<ShouldBeTraced> m_deque1; 2068 Deque<ShouldBeTraced> m_deque1;
2077 Vector<ShouldBeTraced> m_vector1; 2069 Vector<ShouldBeTraced> m_vector1;
2078 Deque<Member<IntWrapper> > m_deque2; 2070 Deque<Member<IntWrapper> > m_deque2;
2079 Vector<Member<IntWrapper> > m_vector2; 2071 Vector<Member<IntWrapper> > m_vector2;
2080 HashMap<int, Member<IntWrapper> > m_hashMap;
2081 Vector<OwnPtr<ShouldBeTraced> > m_ownedVector; 2072 Vector<OwnPtr<ShouldBeTraced> > m_ownedVector;
2082 }; 2073 };
2083 2074
2084 const int OffHeapContainer::iterations; 2075 const int OffHeapContainer::iterations;
2085 const int OffHeapContainer::deadWrappers; 2076 const int OffHeapContainer::deadWrappers;
2086 2077
2087 // These class definitions test compile-time asserts with transition 2078 // These class definitions test compile-time asserts with transition
2088 // types. They are therefore unused in test code and just need to 2079 // types. They are therefore unused in test code and just need to
2089 // compile. This is intentional; do not delete the A and B classes below. 2080 // compile. This is intentional; do not delete the A and B classes below.
2090 class A : public WillBeGarbageCollectedMixin { 2081 class A : public WillBeGarbageCollectedMixin {
(...skipping 2784 matching lines...) Expand 10 before | Expand all | Expand 10 after
4875 // Regression test for out of bounds call through vtable. 4866 // Regression test for out of bounds call through vtable.
4876 // Passes if it doesn't crash. 4867 // Passes if it doesn't crash.
4877 TEST(HeapTest, GarbageCollectionDuringMixinConstruction) 4868 TEST(HeapTest, GarbageCollectionDuringMixinConstruction)
4878 { 4869 {
4879 ClassWithGarbageCollectingMixinConstructor* a = 4870 ClassWithGarbageCollectingMixinConstructor* a =
4880 new ClassWithGarbageCollectingMixinConstructor(); 4871 new ClassWithGarbageCollectingMixinConstructor();
4881 a->verify(); 4872 a->verify();
4882 } 4873 }
4883 4874
4884 } // WebCore namespace 4875 } // WebCore namespace
OLDNEW
« no previous file with comments | « Source/platform/Supplementable.h ('k') | Source/platform/heap/Visitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698