summaryrefslogtreecommitdiff
path: root/module.cc
diff options
context:
space:
mode:
Diffstat (limited to 'module.cc')
-rw-r--r--module.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/module.cc b/module.cc
index acc37d6..6c443de 100644
--- a/module.cc
+++ b/module.cc
@@ -28,6 +28,9 @@ AbstractModule::~AbstractModule()
AbstractNode *AbstractModule::evaluate(const Context*, const QVector<QString>&, const QVector<Value>&, const QVector<AbstractNode*> child_nodes) const
{
+ if (child_nodes.size() == 1)
+ return child_nodes[0];
+
AbstractNode *node = new AbstractNode();
foreach (AbstractNode *v, child_nodes)
node->children.append(v);
@@ -120,6 +123,13 @@ AbstractNode *Module::evaluate(const Context *ctx, const QVector<QString> &call_
foreach (AbstractNode *v, child_nodes)
node->children.append(v);
+ if (node->children.size() == 1) {
+ AbstractNode *c = node->children[0];
+ node->children.clear();
+ delete node;
+ return c;
+ }
+
return node;
}
contact: Jan Huwald // Impressum