aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-04-14 16:12:58 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-04-14 16:22:05 +0200
commit0428fa446c3db835cadf6cbe6e9237bb27073403 (patch)
treeb539a685806eaae830142a987ed7c8a02bf4f220 /src
parent4f37c83d6678c9a38a6f1f1dea0314f016206ce6 (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>
Diffstat (limited to 'src')
-rw-r--r--src/lib/corelib/jsextensions/process.cpp8
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;
}