This repository has been archived on 2019-08-07. You can view files and clone it, but cannot push or open issues or pull requests.
copr-dani-qgis/qgis-2.10.0-arm-build-fix.p...

81 lines
3.7 KiB
Diff

From 05ae68f291a4e8a5b8353bd9b905d4ec6710ea5a Mon Sep 17 00:00:00 2001
From: "Juergen E. Fischer" <jef@norbit.de>
Date: Sun, 5 Jul 2015 12:46:44 +0200
Subject: [PATCH] fix arm build again (followup 68fe5f5 and 1aff733)
---
src/core/geometry/qgscircularstringv2.cpp | 6 ++++++
src/core/geometry/qgspointv2.cpp | 6 ++++++
src/core/geometry/qgswkbptr.h | 10 ++++++++++
3 files changed, 22 insertions(+)
diff --git a/src/core/geometry/qgscircularstringv2.cpp b/src/core/geometry/qgscircularstringv2.cpp
index 963e9a3..f173cad 100644
--- a/src/core/geometry/qgscircularstringv2.cpp
+++ b/src/core/geometry/qgscircularstringv2.cpp
@@ -603,7 +603,13 @@ void QgsCircularStringV2::transform( const QTransform& t )
int nPoints = numPoints();
for ( int i = 0; i < nPoints; ++i )
{
+#ifdef QT_ARCH_ARM
+ qreal x, y;
+ t.map( mX[i], mY[i], &x, &y );
+ mX[i] = x; mY[i] = y;
+#else
t.map( mX[i], mY[i], &mX[i], &mY[i] );
+#endif
}
}
diff --git a/src/core/geometry/qgspointv2.cpp b/src/core/geometry/qgspointv2.cpp
index 8a8076c..dba17a4 100644
--- a/src/core/geometry/qgspointv2.cpp
+++ b/src/core/geometry/qgspointv2.cpp
@@ -241,5 +241,11 @@ bool QgsPointV2::nextVertex( QgsVertexId& id, QgsPointV2& vertex ) const
void QgsPointV2::transform( const QTransform& t )
{
+#ifdef QT_ARCH_ARM
+ qreal x, y;
+ t.map( mX, mY, &x, &y );
+ mX = x; mY = y;
+#else
t.map( mX, mY, &mX, &mY );
+#endif
}
diff --git a/src/core/geometry/qgswkbptr.h b/src/core/geometry/qgswkbptr.h
index 987017d..f6e6d03 100644
--- a/src/core/geometry/qgswkbptr.h
+++ b/src/core/geometry/qgswkbptr.h
@@ -18,6 +18,9 @@ class CORE_EXPORT QgsWkbPtr
inline const QgsWkbPtr &operator>>( char &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; }
inline const QgsWkbPtr &operator>>( QgsWKBTypes::Type &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; }
inline const QgsWkbPtr &operator>>( QGis::WkbType &v ) const { memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); return *this; }
+#ifdef QT_ARCH_ARM
+ inline const QgsWkbPtr &operator>>( qreal &r ) const { double v; memcpy( &v, mP, sizeof( v ) ); mP += sizeof( v ); r = v; return *this; }
+#endif
inline QgsWkbPtr &operator<<( const double &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; }
inline QgsWkbPtr &operator<<( const int &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; }
@@ -25,6 +28,10 @@ class CORE_EXPORT QgsWkbPtr
inline QgsWkbPtr &operator<<( const char &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; }
inline QgsWkbPtr &operator<<( const QgsWKBTypes::Type &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; }
inline QgsWkbPtr &operator<<( const QGis::WkbType &v ) { memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; }
+#ifdef QT_ARCH_ARM
+ inline QgsWkbPtr &operator<<( const qreal &r ) { double v = r; memcpy( mP, &v, sizeof( v ) ); mP += sizeof( v ); return *this; }
+#endif
+
inline void operator+=( int n ) { mP += n; }
inline operator unsigned char *() const { return mP; }
@@ -45,6 +52,9 @@ class CORE_EXPORT QgsConstWkbPtr
inline const QgsConstWkbPtr &operator>>( char &v ) const { read( v ); return *this; }
inline const QgsConstWkbPtr &operator>>( QGis::WkbType &v ) const { read( v ); return *this; }
inline const QgsConstWkbPtr &operator>>( QgsWKBTypes::Type &v ) const { read( v ); return *this; }
+#ifdef QT_ARCH_ARM
+ inline const QgsConstWkbPtr &operator>>( qreal &r ) const { double v; read( v ); r = v; return *this; }
+#endif
inline void operator+=( int n ) { mP += n; }
inline void operator-=( int n ) { mP -= n; }