aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-02-08 12:06:17 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-02-08 12:06:17 +0200
commit928f59d6722c9d1948ce142f2d7a79027c5430a5 (patch)
tree0cd960d06c6b8ad5139537a9fbbd97821f0ca9c0
parente285563fbc9b42cb2fb2da2088f4ffb6f17f0181 (diff)
Fix meta-operation logic some more
-rw-r--r--build2/b.cxx7
1 files changed, 4 insertions, 3 deletions
diff --git a/build2/b.cxx b/build2/b.cxx
index 47cbef2..36bcb2a 100644
--- a/build2/b.cxx
+++ b/build2/b.cxx
@@ -578,6 +578,8 @@ main (int argc, char* argv[])
values& mparams (lifted == nullptr ? mit->params : lifted->params);
string mname (lifted == nullptr ? mit->name : lifted->name);
+ current_mname = mname; // Set early.
+
if (!mname.empty ())
{
if (meta_operation_id m = meta_operation_table.find (mname))
@@ -585,12 +587,11 @@ main (int argc, char* argv[])
// Can modify params, opspec, change meta-operation name.
//
if (auto f = meta_operation_table[m].process)
- mname = f (var_ovs, mparams, opspecs, lifted != nullptr, l);
+ mname = current_mname =
+ f (var_ovs, mparams, opspecs, lifted != nullptr, l);
}
}
- current_mname = mname; // Set early.
-
for (auto oit (opspecs.begin ()); oit != opspecs.end (); ++oit)
{
opspec& os (*oit);