summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/buildtool/build_engine/expression/evaluator.cpp4
2 files changed, 4 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b1cfdc2d..b4a97780 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -85,6 +85,8 @@ A feature release on top of `1.2.0`, backwards compatible.
to be taken on upgrading or downgrading. However, some target-level
cache entries will not be used leading potentially to rebuilding of
some targets.
+- The expression `"disjoint_map_union"` did not verify disjointness
+ in all cases; this is fixed now.
## Release `1.2.0` (2023-08-25)
diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp
index 8945fe0e..34e0873b 100644
--- a/src/buildtool/build_engine/expression/evaluator.cpp
+++ b/src/buildtool/build_engine/expression/evaluator.cpp
@@ -344,8 +344,8 @@ auto Union(Expression::list_t const& dicts, size_t from, size_t to)
return entry;
}
size_t mid = from + (to - from) / 2;
- auto left = Union(dicts, from, mid);
- auto right = Union(dicts, mid, to);
+ auto left = Union<kDisjoint>(dicts, from, mid);
+ auto right = Union<kDisjoint>(dicts, mid, to);
if (left->Map().empty()) {
return right;
}