summaryrefslogtreecommitdiffstats
path: root/src/corelib/global
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-06-12 09:20:03 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-06-12 09:20:03 (GMT)
commit05477289bb7f99e617d8b39c64fbbff2b30be368 (patch)
tree3cdb997b64fcc17e496845ec714cf3582b4d1abe /src/corelib/global
parent1c20abaaeef1ab448526e5821db06350537c1333 (diff)
parent91b3cea424e08e7480fb32987f757206d885504c (diff)
downloadQt-05477289bb7f99e617d8b39c64fbbff2b30be368.zip
Qt-05477289bb7f99e617d8b39c64fbbff2b30be368.tar.gz
Qt-05477289bb7f99e617d8b39c64fbbff2b30be368.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (55 commits) Fix symbian-abld build failure with bearer plugins remove certificate bundle make QSslSocket::systemCaCertificates() use system certs Adjusted RegExp in QSslCertificate::fromPath() Fix QSystemTrayIcon::supportsMessages() on Windows Use NIM_SETVERSION to get the latest behavior Cleanup obsolete stuff doc: Added DITA XML generator Fixed a broken merge. Changed the way we detect touch screen on Windows. Fixed error deploying qsymbianbearer.qtplugin on Symbian. Revert "Attempt to fix build failure on Symbian." Attempt to fix build failure on Symbian. Replaced redundant "!contains" scopes in "contains(A, B) {...} !contains(A, B) {...}" constructions with "else" Updated leading whitespace to make indentation more consistent Updated project files so it is now possible to use "-system-zlib" configuration option on Windows and Symbian platforms. make postgresql support sensitive to PSQL_LIBS support for cross building Qt for MinGW (win32-g++) on Unix use "win32-g++*" scope to match all MinGW makespecs Demos: Fix compilation with namespace. ...
Diffstat (limited to 'src/corelib/global')
-rw-r--r--src/corelib/global/qendian.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h
index 107854c..d53504a 100644
--- a/src/corelib/global/qendian.h
+++ b/src/corelib/global/qendian.h
@@ -44,6 +44,14 @@
#include <QtCore/qglobal.h>
+#ifdef Q_OS_LINUX
+# include <features.h>
+#endif
+
+#ifdef __GLIBC__
+#include <byteswap.h>
+#endif
+
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -264,6 +272,21 @@ template <> inline qint16 qFromBigEndian<qint16>(const uchar *src)
* and it is therefore a bit more convenient and in most cases more efficient.
*/
template <typename T> T qbswap(T source);
+
+#ifdef __GLIBC__
+template <> inline quint64 qbswap<quint64>(quint64 source)
+{
+ return bswap_64(source);
+}
+template <> inline quint32 qbswap<quint32>(quint32 source)
+{
+ return bswap_32(source);
+}
+template <> inline quint16 qbswap<quint16>(quint16 source)
+{
+ return bswap_16(source);
+}
+#else
template <> inline quint64 qbswap<quint64>(quint64 source)
{
return 0
@@ -292,6 +315,7 @@ template <> inline quint16 qbswap<quint16>(quint16 source)
| ((source & 0x00ff) << 8)
| ((source & 0xff00) >> 8) );
}
+#endif // __GLIBC__
// signed specializations
template <> inline qint64 qbswap<qint64>(qint64 source)