diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-07-29 09:19:37 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-07-29 09:19:37 +0200 |
commit | 97913b6fb268f327ee1a689779cb9b0621f72ff2 (patch) | |
tree | dd130d9a3fc5a7b36bf2243eced97d4f4f7e6620 /build2/config/utility.cxx | |
parent | 150bf0a18baab913c01fd1fa5f431455c35c99e1 (diff) |
Fix duplicate config.build variable issue
Diffstat (limited to 'build2/config/utility.cxx')
-rw-r--r-- | build2/config/utility.cxx | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/build2/config/utility.cxx b/build2/config/utility.cxx index a24f7b3..b73e852 100644 --- a/build2/config/utility.cxx +++ b/build2/config/utility.cxx @@ -158,9 +158,16 @@ namespace build2 i = sm.insert (string (n, 0, n.find ('.', 7))); } - // We assume each variable is saved/configured once. + // Don't insert duplicates. The config.import vars are particularly + // susceptible to duplication. // - i->second.push_back (saved_variable {var, flags}); + saved_variables& sv (i->second); + auto j (sv.find (var)); + + if (j == sv.end ()) + sv.push_back (saved_variable {var, flags}); + else + assert (j->flags == flags); } } } |