diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-04-14 16:12:58 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-04-14 16:22:05 +0200 |
commit | 0428fa446c3db835cadf6cbe6e9237bb27073403 (patch) | |
tree | b539a685806eaae830142a987ed7c8a02bf4f220 | |
parent | 4f37c83d6678c9a38a6f1f1dea0314f016206ce6 (diff) |
fix environment of JS Process
The environment of the JS class Process is empty if the build environment
has not been initialized yet. This can happen if one uses Process on the
RHS of a binding like Group.name.
Task-number: QBS-547
Change-Id: I1341c8dbbc677adcc3e3f5842a95d6f8aeebf09b
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r-- | src/lib/corelib/jsextensions/process.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/corelib/jsextensions/process.cpp b/src/lib/corelib/jsextensions/process.cpp index 6d7922e7b..061cfa58d 100644 --- a/src/lib/corelib/jsextensions/process.cpp +++ b/src/lib/corelib/jsextensions/process.cpp @@ -29,6 +29,7 @@ #include "process.h" +#include <language/scriptengine.h> #include <logging/translator.h> #include <tools/hostosinfo.h> @@ -63,9 +64,14 @@ QScriptValue Process::ctor(QScriptContext *context, QScriptEngine *engine) // Get environment QVariant v = engine->property("_qbs_procenv"); - if (!v.isNull()) + if (v.isNull()) { + // The build environment is not initialized yet. + // This can happen if one uses Process on the RHS of a binding like Group.name. + t->m_environment = static_cast<ScriptEngine *>(engine)->environment(); + } else { t->m_environment = QProcessEnvironment(*reinterpret_cast<QProcessEnvironment*>(v.value<void*>())); + } return obj; } |