BLI: fix Map.foreach_item method
This commit is contained in:
@@ -641,7 +641,7 @@ class Map {
|
|||||||
*/
|
*/
|
||||||
template<typename FuncT> void foreach_item(const FuncT &func) const
|
template<typename FuncT> void foreach_item(const FuncT &func) const
|
||||||
{
|
{
|
||||||
uint32_t size = this->size();
|
uint32_t size = m_slots.size();
|
||||||
for (uint32_t i = 0; i < size; i++) {
|
for (uint32_t i = 0; i < size; i++) {
|
||||||
const Slot &slot = m_slots[i];
|
const Slot &slot = m_slots[i];
|
||||||
if (slot.is_occupied()) {
|
if (slot.is_occupied()) {
|
||||||
|
|||||||
@@ -458,6 +458,25 @@ TEST(map, ConstKeysAndValues)
|
|||||||
EXPECT_FALSE(map.contains("54"));
|
EXPECT_FALSE(map.contains("54"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(map, ForeachItem)
|
||||||
|
{
|
||||||
|
Map<int, int> map;
|
||||||
|
map.add(3, 4);
|
||||||
|
map.add(1, 8);
|
||||||
|
|
||||||
|
Vector<int> keys;
|
||||||
|
Vector<int> values;
|
||||||
|
map.foreach_item([&](int key, int value) {
|
||||||
|
keys.append(key);
|
||||||
|
values.append(value);
|
||||||
|
});
|
||||||
|
|
||||||
|
EXPECT_EQ(keys.size(), 2);
|
||||||
|
EXPECT_EQ(values.size(), 2);
|
||||||
|
EXPECT_EQ(keys.first_index_of(3), values.first_index_of(4));
|
||||||
|
EXPECT_EQ(keys.first_index_of(1), values.first_index_of(8));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set this to 1 to activate the benchmark. It is disabled by default, because it prints a lot.
|
* Set this to 1 to activate the benchmark. It is disabled by default, because it prints a lot.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user