Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[processing] Fix crash when using expression editor in aggregate algo…
…rithm

Fixes #37727
  • Loading branch information
nyalldawson committed Jul 10, 2020
1 parent b7d3637 commit 4713c7a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/gui/processing/qgsprocessingaggregatewidgets.cpp
Expand Up @@ -34,7 +34,7 @@
QgsAggregateMappingModel::QgsAggregateMappingModel( const QgsFields &sourceFields,
QObject *parent )
: QAbstractTableModel( parent )
, mExpressionContextGenerator( new QgsFieldMappingModel::ExpressionContextGenerator( &sourceFields ) )
, mExpressionContextGenerator( new QgsFieldMappingModel::ExpressionContextGenerator( sourceFields ) )
{
setSourceFields( sourceFields );
}
Expand Down
10 changes: 5 additions & 5 deletions src/gui/qgsfieldmappingmodel.cpp
Expand Up @@ -24,7 +24,7 @@ QgsFieldMappingModel::QgsFieldMappingModel( const QgsFields &sourceFields,
QObject *parent )
: QAbstractTableModel( parent )
, mSourceFields( sourceFields )
, mExpressionContextGenerator( new ExpressionContextGenerator( &mSourceFields ) )
, mExpressionContextGenerator( new ExpressionContextGenerator( mSourceFields ) )
{
setDestinationFields( destinationFields, expressions );
}
Expand Down Expand Up @@ -494,7 +494,7 @@ bool QgsFieldMappingModel::moveDown( const QModelIndex &index )
return moveUpOrDown( index, false );
}

QgsFieldMappingModel::ExpressionContextGenerator::ExpressionContextGenerator( const QgsFields *sourceFields )
QgsFieldMappingModel::ExpressionContextGenerator::ExpressionContextGenerator( const QgsFields &sourceFields )
: mSourceFields( sourceFields )
{
}
Expand All @@ -505,16 +505,16 @@ QgsExpressionContext QgsFieldMappingModel::ExpressionContextGenerator::createExp
{
QgsExpressionContext ctx = mBaseGenerator->createExpressionContext();
std::unique_ptr< QgsExpressionContextScope > fieldMappingScope = qgis::make_unique< QgsExpressionContextScope >( tr( "Field Mapping" ) );
fieldMappingScope->setFields( *mSourceFields );
fieldMappingScope->setFields( mSourceFields );
ctx.appendScope( fieldMappingScope.release() );
return ctx;
}
else
{
QgsExpressionContext ctx;
ctx.appendScope( QgsExpressionContextUtils::globalScope() );
ctx.setFields( *mSourceFields );
QgsFeature feature { *mSourceFields };
ctx.setFields( mSourceFields );
QgsFeature feature { mSourceFields };
feature.setValid( true );
ctx.setFeature( feature );
return ctx;
Expand Down
4 changes: 2 additions & 2 deletions src/gui/qgsfieldmappingmodel.h
Expand Up @@ -160,7 +160,7 @@ class GUI_EXPORT QgsFieldMappingModel: public QAbstractTableModel

public:

ExpressionContextGenerator( const QgsFields *sourceFields );
ExpressionContextGenerator( const QgsFields &sourceFields );

// QgsExpressionContextGenerator interface
QgsExpressionContext createExpressionContext() const override;
Expand All @@ -170,7 +170,7 @@ class GUI_EXPORT QgsFieldMappingModel: public QAbstractTableModel

const QgsExpressionContextGenerator *mBaseGenerator = nullptr;

const QgsFields *mSourceFields;
const QgsFields mSourceFields;

};

Expand Down

0 comments on commit 4713c7a

Please sign in to comment.