diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-07-28 07:17:29 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-07-28 13:53:22 +0200 |
commit | b11aaa16d404ce7dc55de6b7338dccbf053a72bd (patch) | |
tree | be5a63a170f9de7318e91d79c4784badb8a4488f /build2/variable.ixx | |
parent | ad7d4bd0722aa70ba634900cebf93a1b1814fed9 (diff) |
Adjust to new path implementation, use to support reversibility
Diffstat (limited to 'build2/variable.ixx')
-rw-r--r-- | build2/variable.ixx | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/build2/variable.ixx b/build2/variable.ixx index 6b59c72..4b699a6 100644 --- a/build2/variable.ixx +++ b/build2/variable.ixx @@ -189,7 +189,7 @@ namespace build2 typify (v, t, &var); } - inline names_view + inline vector_view<const name> reverse (const value& v, names& storage) { assert (v && @@ -463,10 +463,11 @@ namespace build2 inline void value_traits<name>:: assign (value& v, name&& x) { - if (v) - v.as<name> () = move (x); - else - new (&v.data_) name (move (x)); + name* p (v + ? &(v.as<name> () = move (x)) + : new (&v.data_) name (move (x))); + + p->original = false; } inline int value_traits<name>:: |