@@ -3313,23 +3313,21 @@ QgsExpressionNode *QgsOgcUtilsExpressionFromFilter::nodeLiteralFromOgcFilter( co
33133313 return nullptr ;
33143314 }
33153315
3316- QgsExpressionNode * root = nullptr ;
3316+ std::unique_ptr< QgsExpressionNode> root;
33173317
33183318 // the literal content can have more children (e.g. CDATA section, text, ...)
33193319 QDomNode childNode = element.firstChild ();
33203320 while ( !childNode.isNull () )
33213321 {
3322- QgsExpressionNode * operand = nullptr ;
3322+ std::unique_ptr< QgsExpressionNode> operand;
33233323
33243324 if ( childNode.nodeType () == QDomNode::ElementNode )
33253325 {
33263326 // found a element node (e.g. PropertyName), convert it
33273327 QDomElement operandElem = childNode.toElement ();
3328- operand = nodeFromOgcFilter ( operandElem );
3328+ operand. reset ( nodeFromOgcFilter ( operandElem ) );
33293329 if ( !operand )
33303330 {
3331- delete root;
3332-
33333331 mErrorMessage = QObject::tr ( " '%1' is an invalid or not supported content for %2:Literal" ).arg ( operandElem.tagName (), mPrefix );
33343332 return nullptr ;
33353333 }
@@ -3370,26 +3368,26 @@ QgsExpressionNode *QgsOgcUtilsExpressionFromFilter::nodeLiteralFromOgcFilter( co
33703368 value = d;
33713369 }
33723370
3373- operand = new QgsExpressionNodeLiteral ( value );
3371+ operand. reset ( new QgsExpressionNodeLiteral ( value ) );
33743372 if ( !operand )
33753373 continue ;
33763374 }
33773375
33783376 // use the concat operator to merge the ogc:Literal children
33793377 if ( !root )
33803378 {
3381- root = operand;
3379+ root = std::move ( operand ) ;
33823380 }
33833381 else
33843382 {
3385- root = new QgsExpressionNodeBinaryOperator ( QgsExpressionNodeBinaryOperator::boConcat, root, operand );
3383+ root. reset ( new QgsExpressionNodeBinaryOperator ( QgsExpressionNodeBinaryOperator::boConcat, root. release () , operand. release () ) );
33863384 }
33873385
33883386 childNode = childNode.nextSibling ();
33893387 }
33903388
33913389 if ( root )
3392- return root;
3390+ return root. release () ;
33933391
33943392 return nullptr ;
33953393}
0 commit comments