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

Side by Side Diff: test/unittests/heap/slot-set-unittest.cc

Issue 2646553002: Fix unused lambda captures. (Closed)
Patch Set: Add a workaround for MSVC++. Created 3 years, 11 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
« no previous file with comments | « src/heap/spaces.cc ('k') | test/unittests/value-serializer-unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 set.Insert(Page::kPageSize / 2); 143 set.Insert(Page::kPageSize / 2);
144 set.RemoveRange(0, Page::kPageSize, mode); 144 set.RemoveRange(0, Page::kPageSize, mode);
145 for (uint32_t i = 0; i < Page::kPageSize; i += kPointerSize) { 145 for (uint32_t i = 0; i < Page::kPageSize; i += kPointerSize) {
146 EXPECT_FALSE(set.Lookup(i)); 146 EXPECT_FALSE(set.Lookup(i));
147 } 147 }
148 } 148 }
149 } 149 }
150 150
151 TEST(TypedSlotSet, Iterate) { 151 TEST(TypedSlotSet, Iterate) {
152 TypedSlotSet set(0); 152 TypedSlotSet set(0);
153 const int kDelta = 10000001; 153 // These two constants must be static as a workaround
154 const int kHostDelta = 50001; 154 // for a MSVC++ bug about lambda captures, see the discussion at
155 // https://social.msdn.microsoft.com/Forums/SqlServer/4abf18bd-4ae4-4c72-ba3e- 3b13e7909d5f
156 static const int kDelta = 10000001;
157 static const int kHostDelta = 50001;
155 int added = 0; 158 int added = 0;
156 uint32_t j = 0; 159 uint32_t j = 0;
157 for (uint32_t i = 0; i < TypedSlotSet::kMaxOffset; 160 for (uint32_t i = 0; i < TypedSlotSet::kMaxOffset;
158 i += kDelta, j += kHostDelta) { 161 i += kDelta, j += kHostDelta) {
159 SlotType type = static_cast<SlotType>(i % CLEARED_SLOT); 162 SlotType type = static_cast<SlotType>(i % CLEARED_SLOT);
160 set.Insert(type, j, i); 163 set.Insert(type, j, i);
161 ++added; 164 ++added;
162 } 165 }
163 int iterated = 0; 166 int iterated = 0;
164 set.Iterate( 167 set.Iterate(
165 [&iterated, kDelta, kHostDelta](SlotType type, Address host_addr, 168 [&iterated](SlotType type, Address host_addr,
166 Address addr) { 169 Address addr) {
167 uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr)); 170 uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr));
168 uint32_t j = 171 uint32_t j =
169 static_cast<uint32_t>(reinterpret_cast<uintptr_t>(host_addr)); 172 static_cast<uint32_t>(reinterpret_cast<uintptr_t>(host_addr));
170 EXPECT_EQ(i % CLEARED_SLOT, static_cast<uint32_t>(type)); 173 EXPECT_EQ(i % CLEARED_SLOT, static_cast<uint32_t>(type));
171 EXPECT_EQ(0u, i % kDelta); 174 EXPECT_EQ(0u, i % kDelta);
172 EXPECT_EQ(0u, j % kHostDelta); 175 EXPECT_EQ(0u, j % kHostDelta);
173 ++iterated; 176 ++iterated;
174 return i % 2 == 0 ? KEEP_SLOT : REMOVE_SLOT; 177 return i % 2 == 0 ? KEEP_SLOT : REMOVE_SLOT;
175 }, 178 },
176 TypedSlotSet::KEEP_EMPTY_CHUNKS); 179 TypedSlotSet::KEEP_EMPTY_CHUNKS);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 CHECK(reinterpret_cast<uintptr_t>(host_addr) < start || 215 CHECK(reinterpret_cast<uintptr_t>(host_addr) < start ||
213 reinterpret_cast<uintptr_t>(host_addr) >= end); 216 reinterpret_cast<uintptr_t>(host_addr) >= end);
214 return KEEP_SLOT; 217 return KEEP_SLOT;
215 }, 218 },
216 TypedSlotSet::KEEP_EMPTY_CHUNKS); 219 TypedSlotSet::KEEP_EMPTY_CHUNKS);
217 } 220 }
218 } 221 }
219 222
220 } // namespace internal 223 } // namespace internal
221 } // namespace v8 224 } // namespace v8
OLDNEW
« no previous file with comments | « src/heap/spaces.cc ('k') | test/unittests/value-serializer-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698