From 9ae156970a124992bb8d4c1767831e433e284b00 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 18 Oct 2016 22:32:56 +0200 Subject: [PATCH] QgsVectorLayer::writeSymbology(): fix crash when called with invalid data provider --- src/core/qgsvectorlayer.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/qgsvectorlayer.cpp b/src/core/qgsvectorlayer.cpp index 7f7472432f6..173c1e60a1f 100644 --- a/src/core/qgsvectorlayer.cpp +++ b/src/core/qgsvectorlayer.cpp @@ -1947,7 +1947,14 @@ bool QgsVectorLayer::writeSymbology( QDomNode& node, QDomDocument& doc, QString& mConditionalStyles->writeXml( node, doc ); // save expression fields - mExpressionFieldBuffer->writeXml( node, doc ); + if ( !mExpressionFieldBuffer ) + { + // can happen when saving style on a invalid layer + QgsExpressionFieldBuffer dummy; + dummy.writeXml( node, doc ); + } + else + mExpressionFieldBuffer->writeXml( node, doc ); // save readonly state node.toElement().setAttribute( QStringLiteral( "readOnly" ), mReadOnly );