OLD | NEW |
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 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 bool isLastInArray() const { return m_isLast; } | 1102 bool isLastInArray() const { return m_isLast; } |
1103 void setLastInArray(bool value) { m_isLast = value; } | 1103 void setLastInArray(bool value) { m_isLast = value; } |
1104 | 1104 |
1105 IntWrapper* payload() const { return m_payload; } | 1105 IntWrapper* payload() const { return m_payload; } |
1106 | 1106 |
1107 private: | 1107 private: |
1108 Member<IntWrapper> m_payload; | 1108 Member<IntWrapper> m_payload; |
1109 bool m_isLast; | 1109 bool m_isLast; |
1110 }; | 1110 }; |
1111 | 1111 |
| 1112 } // WebCore namespace |
| 1113 |
| 1114 namespace WTF { |
| 1115 |
| 1116 // We need the below vector trait specialization for the above HeapVectors to be
have correctly wrt. memset, memcmp etc. |
| 1117 template<> struct VectorTraits<WebCore::VectorObject> : public SimpleClassVector
Traits<WebCore::VectorObject> { }; |
| 1118 template<> struct VectorTraits<WebCore::VectorObjectInheritedTrace> : public Sim
pleClassVectorTraits<WebCore::VectorObjectInheritedTrace> { }; |
| 1119 template<> struct VectorTraits<WebCore::VectorObjectNoTrace> : public SimpleClas
sVectorTraits<WebCore::VectorObjectNoTrace> { }; |
| 1120 |
| 1121 } // WTF namespace |
| 1122 |
| 1123 namespace WebCore { |
| 1124 |
1112 TEST(HeapTest, Transition) | 1125 TEST(HeapTest, Transition) |
1113 { | 1126 { |
1114 { | 1127 { |
1115 RefPtr<TransitionRefCounted> refCounted = TransitionRefCounted::create()
; | 1128 RefPtr<TransitionRefCounted> refCounted = TransitionRefCounted::create()
; |
1116 EXPECT_EQ(1, TransitionRefCounted::s_aliveCount); | 1129 EXPECT_EQ(1, TransitionRefCounted::s_aliveCount); |
1117 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); | 1130 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); |
1118 EXPECT_EQ(1, TransitionRefCounted::s_aliveCount); | 1131 EXPECT_EQ(1, TransitionRefCounted::s_aliveCount); |
1119 } | 1132 } |
1120 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); | 1133 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); |
1121 EXPECT_EQ(0, TransitionRefCounted::s_aliveCount); | 1134 EXPECT_EQ(0, TransitionRefCounted::s_aliveCount); |
(...skipping 1711 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2833 } | 2846 } |
2834 | 2847 |
2835 Persistent<HeapLinkedStack<TerminatedArrayItem> > pStack = stack; | 2848 Persistent<HeapLinkedStack<TerminatedArrayItem> > pStack = stack; |
2836 | 2849 |
2837 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); | 2850 Heap::collectGarbage(ThreadState::NoHeapPointersOnStack); |
2838 EXPECT_EQ(stackSize, static_cast<size_t>(IntWrapper::s_destructorCalls)); | 2851 EXPECT_EQ(stackSize, static_cast<size_t>(IntWrapper::s_destructorCalls)); |
2839 EXPECT_EQ(0u, pStack->size()); | 2852 EXPECT_EQ(0u, pStack->size()); |
2840 } | 2853 } |
2841 | 2854 |
2842 } // WebCore namespace | 2855 } // WebCore namespace |
2843 | |
2844 namespace WTF { | |
2845 | |
2846 // We need the below vector trait specialization for the above HeapVectors to be
have correctly wrt. memset, memcmp etc. | |
2847 template<> struct VectorTraits<WebCore::VectorObject> : public SimpleClassVector
Traits<WebCore::VectorObject> { }; | |
2848 template<> struct VectorTraits<WebCore::VectorObjectInheritedTrace> : public Sim
pleClassVectorTraits<WebCore::VectorObjectInheritedTrace> { }; | |
2849 template<> struct VectorTraits<WebCore::VectorObjectNoTrace> : public SimpleClas
sVectorTraits<WebCore::VectorObjectNoTrace> { }; | |
2850 | |
2851 } // WTF namespace | |
2852 | |
OLD | NEW |