From aca6cf13ba4a3dccca07fce3470a227b31fe13c3 Mon Sep 17 00:00:00 2001 From: Amir Masoud Abdol Date: Fri, 24 Feb 2023 16:56:29 +0100 Subject: Resolve a duplicate static symbol during Unity Build Removed a duplicate function, and replaced it with direct calculation since it was only being used once in one of the files anyway. The same for `invLog2`, as the compiler should be taking care of it already. Task-number: QTBUG-109394 Change-Id: I9095bca32ea127f770fa2cb0523b05110bd8ef21 Reviewed-by: Volker Hilsheimer (cherry picked from commit 95e2cae51e6c92315fbf33c5d3e8a1826cca8907) Reviewed-by: Qt Cherry-pick Bot --- src/location/maps/qgeocameracapabilities.cpp | 4 +--- src/location/maps/qgeotiledmap.cpp | 9 +-------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/location/maps/qgeocameracapabilities.cpp b/src/location/maps/qgeocameracapabilities.cpp index b78c4ef6..24c1bb6c 100644 --- a/src/location/maps/qgeocameracapabilities.cpp +++ b/src/location/maps/qgeocameracapabilities.cpp @@ -6,11 +6,9 @@ #include #include -static const double invLog2 = 1.0 / std::log(2.0); - static double zoomLevelTo256(double zoomLevelForTileSize, double tileSize) { - return std::log( std::pow(2.0, zoomLevelForTileSize) * tileSize / 256.0 ) * invLog2; + return std::log(std::pow(2.0, zoomLevelForTileSize) * tileSize / 256.0) * (1.0 / std::log(2.0)); } QT_BEGIN_NAMESPACE diff --git a/src/location/maps/qgeotiledmap.cpp b/src/location/maps/qgeotiledmap.cpp index 268a3277..64088c36 100644 --- a/src/location/maps/qgeotiledmap.cpp +++ b/src/location/maps/qgeotiledmap.cpp @@ -16,13 +16,6 @@ QT_BEGIN_NAMESPACE #define PREFETCH_FRUSTUM_SCALE 2.0 -static const double invLog2 = 1.0 / std::log(2.0); - -static double zoomLevelFrom256(double zoomLevelFor256, double tileSize) -{ - return std::log( std::pow(2.0, zoomLevelFor256) * 256.0 / tileSize ) * invLog2; -} - QGeoTiledMap::QGeoTiledMap(QGeoTiledMappingManagerEngine *engine, QObject *parent) : QGeoMap(*new QGeoTiledMapPrivate(engine), parent) { @@ -272,7 +265,7 @@ void QGeoTiledMapPrivate::changeCameraData(const QGeoCameraData &cameraData) // Adapt it to the current tileSize double zoomLevel = cameraData.zoomLevel(); if (m_visibleTiles->tileSize() != 256) - zoomLevel = zoomLevelFrom256(zoomLevel, m_visibleTiles->tileSize()); + zoomLevel = std::log(std::pow(2.0, zoomLevel) * 256.0 / m_visibleTiles->tileSize()) * (1.0 / std::log(2.0)); cam.setZoomLevel(zoomLevel); // For zoomlevel, "snap" 0.01 either side of a whole number. -- cgit v1.2.1