aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-11-23 17:13:29 +0000
committerRainer Hurling <rhurlin@FreeBSD.org>2021-11-23 17:16:16 +0000
commitaf60a61a9333df126249d5659c350c4a7b969a9a (patch)
treede4934ef0f2d0f045ab21349da6ccab559df3d9f
parente4358cae562c3e3de2b1f3ab5d967a424f89fc73 (diff)
downloadports-af60a61a9333df126249d5659c350c4a7b969a9a.tar.gz
ports-af60a61a9333df126249d5659c350c4a7b969a9a.zip
graphics/qgis-ltr: Fix on CURRENT after llvm13 intro
Right after replacing llvm12 with llvm13 in base (commits b61bce17f346d79cecfd8f195a64b10f77be43b1 to 397a8ba05313cc3815d219c9d1b2de1372fcb561) graphics/qgis-ltr was broken on 14.0-CURRENT with /usr/ports/graphics/qgis/work/QGIS-final-3_16_14/src/core/providers/ogr/qgsogrproviderutils.cpp:5971:34: error: no matching constructor for initialization of 'QgsOgrDatasetSharedPtr' (aka 'shared_ptr<QgsOgrDataset>') QgsOgrDatasetSharedPtr dsRet = QgsOgrDatasetSharedPtr( new QgsOgrDataset(), QgsOgrProviderUtils::releaseDataset ); Thanks to dim@ for the analysis and solution. Much appreciated! PR: 259967
-rw-r--r--graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.cpp19
-rw-r--r--graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.h11
2 files changed, 30 insertions, 0 deletions
diff --git a/graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.cpp b/graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.cpp
new file mode 100644
index 000000000000..92563ca24ac9
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.cpp
@@ -0,0 +1,19 @@
+--- src/core/providers/ogr/qgsogrproviderutils.cpp.orig 2021-11-19 12:08:37 UTC
++++ src/core/providers/ogr/qgsogrproviderutils.cpp
+@@ -2311,7 +2311,7 @@ void QgsOgrProviderUtils::release( QgsOgrLayer *&layer
+ }
+
+
+-void QgsOgrProviderUtils::releaseDataset( QgsOgrDataset *&ds )
++void QgsOgrProviderUtils::releaseDataset( QgsOgrDataset *ds )
+ {
+ if ( !ds )
+ return;
+@@ -2319,7 +2319,6 @@ void QgsOgrProviderUtils::releaseDataset( QgsOgrDatase
+ QMutexLocker locker( sGlobalMutex() );
+ releaseInternal( ds->mIdent, ds->mDs, true );
+ delete ds;
+- ds = nullptr;
+ }
+
+ bool QgsOgrProviderUtils::canDriverShareSameDatasetAmongLayers( const QString &driverName )
diff --git a/graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.h b/graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.h
new file mode 100644
index 000000000000..472ef5ed8c07
--- /dev/null
+++ b/graphics/qgis-ltr/files/patch-src_core_providers_ogr_qgsogrproviderutils.h
@@ -0,0 +1,11 @@
+--- src/core/providers/ogr/qgsogrproviderutils.h.orig 2021-11-19 12:08:37 UTC
++++ src/core/providers/ogr/qgsogrproviderutils.h
+@@ -216,7 +216,7 @@ class CORE_EXPORT QgsOgrProviderUtils
+ static void release( QgsOgrLayer *&layer );
+
+ //! Release a QgsOgrDataset*
+- static void releaseDataset( QgsOgrDataset *&ds );
++ static void releaseDataset( QgsOgrDataset *ds );
+
+ //! Make sure that the existing pool of opened datasets on dsName is not accessible for new getLayer() attempts
+ static void invalidateCachedDatasets( const QString &dsName );