aboutsummaryrefslogtreecommitdiff
path: root/build2/config/utility.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-07-29 09:19:37 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-07-29 09:19:37 +0200
commit97913b6fb268f327ee1a689779cb9b0621f72ff2 (patch)
treedd130d9a3fc5a7b36bf2243eced97d4f4f7e6620 /build2/config/utility.cxx
parent150bf0a18baab913c01fd1fa5f431455c35c99e1 (diff)
Fix duplicate config.build variable issue
Diffstat (limited to 'build2/config/utility.cxx')
-rw-r--r--build2/config/utility.cxx11
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);
}
}
}