Showing with 7 additions and 4 deletions.
  1. +7 −4 src/core/qgsexpression.cpp
11 changes: 7 additions & 4 deletions src/core/qgsexpression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -806,7 +806,7 @@ QVariant QgsExpression::NodeInOperator::eval( QgsExpression* parent, QgsFeature*

bool QgsExpression::NodeInOperator::prepare( QgsExpression* parent, const QgsFieldMap& fields )
{
bool res = true;
bool res = mNode->prepare( parent, fields );
foreach( Node* n, mList->list() )
{
res = res && n->prepare( parent, fields );
Expand Down Expand Up @@ -850,9 +850,12 @@ QVariant QgsExpression::NodeFunction::eval( QgsExpression* parent, QgsFeature* f
bool QgsExpression::NodeFunction::prepare( QgsExpression* parent, const QgsFieldMap& fields )
{
bool res = true;
foreach( Node* n, mArgs->list() )
if ( mArgs )
{
res = res && n->prepare( parent, fields );
foreach( Node* n, mArgs->list() )
{
res = res && n->prepare( parent, fields );
}
}
return res;
}
Expand All @@ -863,7 +866,7 @@ QString QgsExpression::NodeFunction::dump() const
if ( fd.mParams == 0 )
return fd.mName; // special column
else
return QString( "%1(%2)" ).arg( fd.mName ).arg( mArgs->dump() ); // function
return QString( "%1(%2)" ).arg( fd.mName ).arg( mArgs ? mArgs->dump() : QString() ); // function
}

//
Expand Down