aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2020-11-11 15:05:30 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2020-11-11 15:05:30 +0200
commit60a95915aa1fda93d308158416071ba39286d41c (patch)
tree98abce912c5d28ef65e92ac5ebdeb9a03df5530c
parent011adfe1efe3ff20dc019e242d56c95b2b35ac13 (diff)
Make value_traits<bool>::convert() non-modifying
-rw-r--r--libbuild2/variable.cxx2
-rw-r--r--libbuild2/variable.hxx5
2 files changed, 5 insertions, 2 deletions
diff --git a/libbuild2/variable.cxx b/libbuild2/variable.cxx
index 91b25bd..f5476b5 100644
--- a/libbuild2/variable.cxx
+++ b/libbuild2/variable.cxx
@@ -460,7 +460,7 @@ namespace build2
// bool value
//
bool value_traits<bool>::
- convert (name&& n, name* r)
+ convert (const name& n, const name* r)
{
if (r == nullptr && n.simple ())
{
diff --git a/libbuild2/variable.hxx b/libbuild2/variable.hxx
index 3152c71..a671978 100644
--- a/libbuild2/variable.hxx
+++ b/libbuild2/variable.hxx
@@ -704,7 +704,10 @@ namespace build2
{
static_assert (sizeof (bool) <= value::size_, "insufficient space");
- static bool convert (name&&, name*);
+ // Note: in some places we rely on the convert() function not changing
+ // the passed names thus we make them const.
+ //
+ static bool convert (const name&, const name*);
static void assign (value&, bool);
static void append (value&, bool); // OR.
static name reverse (bool x) {return name (x ? "true" : "false");}