aboutsummaryrefslogtreecommitdiffstats
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
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>
-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;
}