From 9a6cfc07e5ab21460cd85dbe6ac1f6de62c69524 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= <joao.abecasis@nokia.com>
Date: Wed, 5 Jan 2011 15:24:50 +0100
Subject: Check elapsed time only once

Task-number: QTBUG-16262
Reviewed-by: Bradley T. Hughes
---
 src/corelib/thread/qsemaphore.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/corelib/thread/qsemaphore.cpp b/src/corelib/thread/qsemaphore.cpp
index 8e8a88a..15f45b6 100644
--- a/src/corelib/thread/qsemaphore.cpp
+++ b/src/corelib/thread/qsemaphore.cpp
@@ -223,8 +223,9 @@ bool QSemaphore::tryAcquire(int n, int timeout)
         QElapsedTimer timer;
         timer.start();
         while (n > d->avail) {
-            if (timer.hasExpired(timeout)
-                || !d->cond.wait(locker.mutex(), timeout - timer.elapsed()))
+            const qint64 elapsed = timer.elapsed();
+            if (timeout - elapsed > 0
+                || !d->cond.wait(locker.mutex(), timeout - elapsed))
                 return false;
         }
     }
-- 
cgit v0.12


From 1638129ccbe9680a41859dc48d063a63ae103b1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= <joao.abecasis@nokia.com>
Date: Thu, 6 Jan 2011 17:16:20 +0100
Subject: Fix compilation error on Solaris

d_type in dirent is a non-standard extension to POSIX available on some
platforms (namely BSDs, Mac, Linux, Symbian).

Taking the conservative approach and using this information only on
platforms known to support it.

Reviewed-by: Shane Kearns
---
 src/corelib/io/qfilesystemengine.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp
index d9d802e..9446ebb 100644
--- a/src/corelib/io/qfilesystemengine.cpp
+++ b/src/corelib/io/qfilesystemengine.cpp
@@ -289,6 +289,9 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer)
 
 void QFileSystemMetaData::fillFromDirEnt(const QT_DIRENT &entry)
 {
+#if defined(_DIRENT_HAVE_D_TYPE) || defined(Q_OS_BSD4) || defined(Q_OS_SYMBIAN)
+    // BSD4 includes Mac OS X
+
     // ### This will clear all entry flags and knownFlagsMask
     switch (entry.d_type)
     {
@@ -344,6 +347,9 @@ void QFileSystemMetaData::fillFromDirEnt(const QT_DIRENT &entry)
     default:
         clear();
     }
+#else
+    Q_UNUSED(entry)
+#endif
 }
 
 #endif
-- 
cgit v0.12


From 6e3ae781a7bd3b5ae2143ef60f969d89663508e3 Mon Sep 17 00:00:00 2001
From: miniak <milan.burda@gmail.com>
Date: Fri, 7 Jan 2011 19:16:33 +0100
Subject: Add /DYNAMICBASE /NXCOMPAT to linker options in Visual Studio 2005
 and higher

Native Win32 C++ projects created in Visual Studio have this enabled in the default configuration in order to increase security.

Merge-request: 2539
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
---
 mkspecs/win32-msvc2005/qmake.conf | 2 +-
 mkspecs/win32-msvc2008/qmake.conf | 2 +-
 mkspecs/win32-msvc2010/qmake.conf | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/mkspecs/win32-msvc2005/qmake.conf b/mkspecs/win32-msvc2005/qmake.conf
index 0c79561..63bef80 100644
--- a/mkspecs/win32-msvc2005/qmake.conf
+++ b/mkspecs/win32-msvc2005/qmake.conf
@@ -53,7 +53,7 @@ QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
 QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
 
 QMAKE_LINK              = link
-QMAKE_LFLAGS            = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
+QMAKE_LFLAGS            = /NOLOGO /DYNAMICBASE /NXCOMPAT \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
 QMAKE_LFLAGS_RELEASE    = /INCREMENTAL:NO
 QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
 QMAKE_LFLAGS_DEBUG      = /DEBUG
diff --git a/mkspecs/win32-msvc2008/qmake.conf b/mkspecs/win32-msvc2008/qmake.conf
index 24a0486..9f9c919 100644
--- a/mkspecs/win32-msvc2008/qmake.conf
+++ b/mkspecs/win32-msvc2008/qmake.conf
@@ -55,7 +55,7 @@ QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
 QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
 
 QMAKE_LINK              = link
-QMAKE_LFLAGS            = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
+QMAKE_LFLAGS            = /NOLOGO /DYNAMICBASE /NXCOMPAT \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
 QMAKE_LFLAGS_RELEASE    = /INCREMENTAL:NO
 QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
 QMAKE_LFLAGS_DEBUG      = /DEBUG
diff --git a/mkspecs/win32-msvc2010/qmake.conf b/mkspecs/win32-msvc2010/qmake.conf
index c08a74d..9471034 100644
--- a/mkspecs/win32-msvc2010/qmake.conf
+++ b/mkspecs/win32-msvc2010/qmake.conf
@@ -55,7 +55,7 @@ QMAKE_RUN_CXX_IMP       = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
 QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
 
 QMAKE_LINK              = link
-QMAKE_LFLAGS            = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
+QMAKE_LFLAGS            = /NOLOGO /DYNAMICBASE /NXCOMPAT \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
 QMAKE_LFLAGS_RELEASE    = /INCREMENTAL:NO
 QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
 QMAKE_LFLAGS_DEBUG      = /DEBUG
-- 
cgit v0.12


From 13370ead4e9184fd82c08c060dbb1ea29a51cc7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= <joao.abecasis@nokia.com>
Date: Mon, 10 Jan 2011 12:39:16 +0100
Subject: Fix reversed condition introduced in 9a6cfc07e5

Reviewed-by: Bradley T. Hughes
---
 src/corelib/thread/qsemaphore.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/corelib/thread/qsemaphore.cpp b/src/corelib/thread/qsemaphore.cpp
index 15f45b6..5fa41f1 100644
--- a/src/corelib/thread/qsemaphore.cpp
+++ b/src/corelib/thread/qsemaphore.cpp
@@ -224,7 +224,7 @@ bool QSemaphore::tryAcquire(int n, int timeout)
         timer.start();
         while (n > d->avail) {
             const qint64 elapsed = timer.elapsed();
-            if (timeout - elapsed > 0
+            if (timeout - elapsed <= 0
                 || !d->cond.wait(locker.mutex(), timeout - elapsed))
                 return false;
         }
-- 
cgit v0.12