From 46807c7eafc3dda0f4d7973aaf9d03cb4f1ca4d9 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Fri, 19 Jul 2019 15:25:42 +1000 Subject: [PATCH] Fix missing cache skip in proj 6 code path --- src/core/qgscoordinatetransform.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/core/qgscoordinatetransform.cpp b/src/core/qgscoordinatetransform.cpp index d4844639494..120c7a0587f 100644 --- a/src/core/qgscoordinatetransform.cpp +++ b/src/core/qgscoordinatetransform.cpp @@ -821,7 +821,10 @@ bool QgsCoordinateTransform::setFromCache( const QgsCoordinateReferenceSystem &s if ( sourceKey.isEmpty() || destKey.isEmpty() ) return false; - sCacheLock.lockForRead(); + QgsReadWriteLocker locker( sCacheLock, QgsReadWriteLocker::Read ); + if ( sDisableCache ) + return false; + const QList< QgsCoordinateTransform > values = sTransforms.values( qMakePair( sourceKey, destKey ) ); for ( auto valIt = values.constBegin(); valIt != values.constEnd(); ++valIt ) { @@ -833,7 +836,7 @@ bool QgsCoordinateTransform::setFromCache( const QgsCoordinateReferenceSystem &s bool hasContext = mHasContext; #endif *this = *valIt; - sCacheLock.unlock(); + locker.unlock(); mContext = context; #ifdef QGISDEBUG @@ -843,7 +846,6 @@ bool QgsCoordinateTransform::setFromCache( const QgsCoordinateReferenceSystem &s return true; } } - sCacheLock.unlock(); return false; } #else