| OLD | NEW |
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <limits> | 5 #include <limits> |
| 6 #include <map> | 6 #include <map> |
| 7 | 7 |
| 8 #include "src/globals.h" | 8 #include "src/globals.h" |
| 9 #include "src/heap/slot-set.h" | 9 #include "src/heap/slot-set.h" |
| 10 #include "src/heap/spaces.h" | 10 #include "src/heap/spaces.h" |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 ++added; | 161 ++added; |
| 162 } | 162 } |
| 163 int iterated = 0; | 163 int iterated = 0; |
| 164 set.Iterate( | 164 set.Iterate( |
| 165 [&iterated, kDelta, kHostDelta](SlotType type, Address host_addr, | 165 [&iterated, kDelta, kHostDelta](SlotType type, Address host_addr, |
| 166 Address addr) { | 166 Address addr) { |
| 167 uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr)); | 167 uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr)); |
| 168 uint32_t j = | 168 uint32_t j = |
| 169 static_cast<uint32_t>(reinterpret_cast<uintptr_t>(host_addr)); | 169 static_cast<uint32_t>(reinterpret_cast<uintptr_t>(host_addr)); |
| 170 EXPECT_EQ(i % CLEARED_SLOT, static_cast<uint32_t>(type)); | 170 EXPECT_EQ(i % CLEARED_SLOT, static_cast<uint32_t>(type)); |
| 171 EXPECT_EQ(0, i % kDelta); | 171 EXPECT_EQ(0u, i % kDelta); |
| 172 EXPECT_EQ(0, j % kHostDelta); | 172 EXPECT_EQ(0u, j % kHostDelta); |
| 173 ++iterated; | 173 ++iterated; |
| 174 return i % 2 == 0 ? KEEP_SLOT : REMOVE_SLOT; | 174 return i % 2 == 0 ? KEEP_SLOT : REMOVE_SLOT; |
| 175 }, | 175 }, |
| 176 TypedSlotSet::KEEP_EMPTY_CHUNKS); | 176 TypedSlotSet::KEEP_EMPTY_CHUNKS); |
| 177 EXPECT_EQ(added, iterated); | 177 EXPECT_EQ(added, iterated); |
| 178 iterated = 0; | 178 iterated = 0; |
| 179 set.Iterate( | 179 set.Iterate( |
| 180 [&iterated](SlotType type, Address host_addr, Address addr) { | 180 [&iterated](SlotType type, Address host_addr, Address addr) { |
| 181 uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr)); | 181 uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr)); |
| 182 EXPECT_EQ(0, i % 2); | 182 EXPECT_EQ(0u, i % 2); |
| 183 ++iterated; | 183 ++iterated; |
| 184 return KEEP_SLOT; | 184 return KEEP_SLOT; |
| 185 }, | 185 }, |
| 186 TypedSlotSet::KEEP_EMPTY_CHUNKS); | 186 TypedSlotSet::KEEP_EMPTY_CHUNKS); |
| 187 EXPECT_EQ(added / 2, iterated); | 187 EXPECT_EQ(added / 2, iterated); |
| 188 } | 188 } |
| 189 | 189 |
| 190 TEST(TypedSlotSet, RemoveInvalidSlots) { | 190 TEST(TypedSlotSet, RemoveInvalidSlots) { |
| 191 TypedSlotSet set(0); | 191 TypedSlotSet set(0); |
| 192 const int kHostDelta = 100; | 192 const int kHostDelta = 100; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 212 CHECK(reinterpret_cast<uintptr_t>(host_addr) < start || | 212 CHECK(reinterpret_cast<uintptr_t>(host_addr) < start || |
| 213 reinterpret_cast<uintptr_t>(host_addr) >= end); | 213 reinterpret_cast<uintptr_t>(host_addr) >= end); |
| 214 return KEEP_SLOT; | 214 return KEEP_SLOT; |
| 215 }, | 215 }, |
| 216 TypedSlotSet::KEEP_EMPTY_CHUNKS); | 216 TypedSlotSet::KEEP_EMPTY_CHUNKS); |
| 217 } | 217 } |
| 218 } | 218 } |
| 219 | 219 |
| 220 } // namespace internal | 220 } // namespace internal |
| 221 } // namespace v8 | 221 } // namespace v8 |
| OLD | NEW |