Skip to content

Commit 904a07d

Browse files
authored
Merge pull request #6295 from jezhiggins/delta-map-fix
sharing_map::get_delta_view fix
2 parents e1be597 + 0b7e36b commit 904a07d

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

src/util/sharing_map.h

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Author: Daniel Poetzl
1313
#define CPROVER_UTIL_SHARING_MAP_H
1414

1515
#ifdef SM_DEBUG
16-
#include <iostream>
16+
# include <iostream>
1717
#endif
1818

1919
#include <functional>
@@ -34,9 +34,9 @@ Author: Daniel Poetzl
3434
#include "threeval.h"
3535

3636
#ifdef SM_INTERNAL_CHECKS
37-
#define SM_ASSERT(b) INVARIANT(b, "Sharing map internal invariant")
37+
# define SM_ASSERT(b) INVARIANT(b, "Sharing map internal invariant")
3838
#else
39-
#define SM_ASSERT(b)
39+
# define SM_ASSERT(b)
4040
#endif
4141

4242
// clang-format off
@@ -344,8 +344,8 @@ class sharing_mapt
344344
map.swap(other.map);
345345

346346
std::size_t tmp = num;
347-
num=other.num;
348-
other.num=tmp;
347+
num = other.num;
348+
other.num = tmp;
349349
}
350350

351351
/// Get number of elements in map
@@ -359,14 +359,14 @@ class sharing_mapt
359359
/// Check if map is empty
360360
bool empty() const
361361
{
362-
return num==0;
362+
return num == 0;
363363
}
364364

365365
/// Clear map
366366
void clear()
367367
{
368368
map.clear();
369-
num=0;
369+
num = 0;
370370
}
371371

372372
/// Check if key is in map
@@ -376,7 +376,7 @@ class sharing_mapt
376376
/// - Best case: O(1)
377377
bool has_key(const key_type &k) const
378378
{
379-
return get_leaf_node(k)!=nullptr;
379+
return get_leaf_node(k) != nullptr;
380380
}
381381

382382
// views
@@ -695,8 +695,7 @@ ::iterate(
695695
f(l.get_key(), l.get_value());
696696
}
697697
}
698-
}
699-
while(!stack.empty());
698+
} while(!stack.empty());
700699
}
701700

702701
SHARING_MAPT(std::size_t)
@@ -907,7 +906,10 @@ SHARING_MAPT(void)::add_item_if_not_shared(
907906
}
908907
}
909908

910-
delta_view.push_back({k, leaf.get_value()});
909+
if(!only_common)
910+
{
911+
delta_view.push_back({k, leaf.get_value()});
912+
}
911913

912914
return;
913915
}
@@ -920,10 +922,11 @@ SHARING_MAPT(void)::add_item_if_not_shared(
920922
if(equalT()(leaf.get_key(), ip->get_key()))
921923
{
922924
delta_view.push_back({k, leaf.get_value(), ip->get_value()});
923-
return;
924925
}
925-
926-
delta_view.push_back({k, leaf.get_value()});
926+
else if(!only_common)
927+
{
928+
delta_view.push_back({k, leaf.get_value()});
929+
}
927930

928931
return;
929932
}
@@ -1113,8 +1116,7 @@ ::get_delta_view(
11131116
}
11141117
}
11151118
}
1116-
}
1117-
while(!stack.empty());
1119+
} while(!stack.empty());
11181120
}
11191121

11201122
SHARING_MAPT2(, delta_viewt)::get_delta_view(
@@ -1217,7 +1219,7 @@ SHARING_MAPT(void)::erase(const key_type &k)
12171219
if(m.size() > 1 || del == nullptr)
12181220
{
12191221
del = ip;
1220-
del_bit=bit;
1222+
del_bit = bit;
12211223
}
12221224

12231225
ip = &ip->add_child(bit);

0 commit comments

Comments
 (0)