From 2523d7351cf166b15941edd707586951a30ed54b Mon Sep 17 00:00:00 2001 From: Alessandro Pasotti Date: Tue, 7 Nov 2017 09:26:01 +0100 Subject: [PATCH] [bugfix] Prevent a bad crash when provider is wrong Fixes #17155 --- src/core/qgsvectorlayer.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/core/qgsvectorlayer.cpp b/src/core/qgsvectorlayer.cpp index 980d748059e..dc8fa7dd608 100644 --- a/src/core/qgsvectorlayer.cpp +++ b/src/core/qgsvectorlayer.cpp @@ -1530,12 +1530,8 @@ bool QgsVectorLayer::setDataProvider( QString const &provider ) dataSource = uri.uri( false ); } - // XXX when execution gets here. - - //XXX - This was a dynamic cast but that kills the Windows - // version big-time with an abnormal termination error delete mDataProvider; - mDataProvider = ( QgsVectorDataProvider * )( QgsProviderRegistry::instance()->createProvider( provider, dataSource ) ); + mDataProvider = qobject_cast( QgsProviderRegistry::instance()->createProvider( provider, dataSource ) ); if ( !mDataProvider ) { QgsDebugMsg( " unable to get data provider" );