1. 09 Oct, 2015 - 1 commit
    • Alex Trotsenko's avatar
      Fix spurious socket notifications on OS X and iOS · 6542161d
      Alex Trotsenko authored
      
      Core Foundation Framework forwards notifications about socket activity
      through a callback function which called from the run loop.
      
      The default behavior of Core Foundation is to automatically re-enable the
      read callback after each notification, and we explicitly enabled the same
      behavior for the write callback.
      
      With this behavior, if the client did multiple recv() calls in response to
      the first notification in a series of read notifications, the client would
      still get the QSocketNotifier notifications for the data that was already
      read.
      
      To get rid of these extra notifications, we disable automatically re-enabling
      the callbacks, and then manually enable them on each run loop pass.
      
      Task-number: QTBUG-48556
      Change-Id: I0b060222b787f45600be0cb7da85d04aef415e57
      Reviewed-by: default avatarTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
      v5.5.1
      6542161d
  2. 06 Oct, 2015 - 1 commit
  3. 02 Oct, 2015 - 2 commits
    • Samuel Nevala's avatar
      ANGLE: Fix D3D feature level detection. · 44f323e5
      Samuel Nevala authored
      Commit 7943d4f7
      
       tried to fix this with a switch/case, but the feature
      levels need to be in descending order so this failed. So, follow the
      same style used for feature levels 10/11.
      
      Change-Id: Ia1c22981bf8b99eb53df13833aba452482398295
      Task-number: QTBUG-38481
      Task-number: QTBUG-48571
      Reviewed-by: default avatarAndrew Knight <andrew.knight@intopalo.com>
      Reviewed-by: default avatarOliver Wolff <oliver.wolff@theqtcompany.com>
      44f323e5
    • Alex Trotsenko's avatar
      Fix the spurious socket notifications on OS X · b8e0f7cf
      Alex Trotsenko authored
      
      Core Foundation Framework forwards notifications about socket activity
      through a callback function which called from the run loop. Previous
      implementation sets kCFSocketReadCallBack, kCFSocketWriteCallBack to be
      automatically re-enabled after they are triggered. With these semantics,
      an application need not read all available data in response to a read
      notification: a single recv in response to each read notification is
      appropriate. If an application issues multiple recv calls in response to
      a single notification, it can receive spurious notifications.
      
      To solve this issue, this patch disables automatically reenabling callback
      feature. Now, callback gets called exactly once, and is not called again
      until manually re-enabled by calling CFSocketEnableCallBacks() just before
      entering to wait for the new events.
      
      Task-number: QTBUG-48556
      Change-Id: Ia3393c2026230c7b3397cc614758dec1d432535f
      Reviewed-by: default avatarMorten Johan Sørvig <morten.sorvig@theqtcompany.com>
      b8e0f7cf
  4. 29 Sep, 2015 - 1 commit
  5. 23 Sep, 2015 - 2 commits
  6. 16 Sep, 2015 - 1 commit
  7. 15 Sep, 2015 - 2 commits
    • Samuel Gaist's avatar
      Fix QMYSQL plugin database connection setup check · 0de6c52b
      Samuel Gaist authored
      
      Opening a connection to an e.g. inactive server will return true
      regardless of the server accessibility.
      This patch aims to fix the current checks done.
      
      The first one is an allocation check which should only fail if there's
      not enough memory but is currently wrote as if the connection failed
      there.
      
      The second check that is "failing" is the connection setup. The return
      value should either be NULL or the same value provided as first
      parameter. That is now verified.
      
      [ChangeLog][QtSql][QSqlDatabase] Fixed a bug where opening a
      connection to a MySQL database using the QMYSQL plugin would always
      return true even if the server was unreachable. This bug could
      also lead to crashes depending on the platform used.
      
      Task-number: QTBUG-47784
      Task-number: QTBUG-47452
      Change-Id: I91651684b5a342eaa7305473e26d8371b35396c4
      Reviewed-by: default avatarAndy Shaw <andy.shaw@theqtcompany.com>
      0de6c52b
    • Liang Qi's avatar
      Revert "Cocoa: correct QDesktopWidget::availableGeometry()" · 020ddba5
      Liang Qi authored
      Wrong calculation of flip.
      
      This reverts commit 1a5cc2a8
      
      .
      
      Task-number: QTBUG-47030
      Change-Id: Ide178eb5e027c4ecec1e3952c973fb64987eb7ce
      Reviewed-by: default avatarJake Petroules <jake.petroules@theqtcompany.com>
      020ddba5
  8. 11 Sep, 2015 - 3 commits
  9. 10 Sep, 2015 - 6 commits
    • Laszlo Agocs's avatar
      Force GLES 2.0 on Android 4.2 devices reporting 3.0 · 3f531512
      Laszlo Agocs authored
      
      Android does not support GLES 3.0 before 4.3 (API level 18). However some
      4.2.2 devices are reported to return 3.0 in the version string and therefore
      choose the GLES 3+ code paths in Qt. This blows up sooner or later because
      the 3.0 specific functions are apparently not present at all.
      
      Task-number: QTBUG-46831
      Change-Id: Ic3eeb7c55829cf36c6d142c01ff8a1e18e9ecc1a
      Reviewed-by: default avatarKati Kankaanpaa <kati.kankaanpaa@theqtcompany.com>
      Reviewed-by: default avatarChristian Stromme <christian.stromme@theqtcompany.com>
      3f531512
    • Alex Trotsenko's avatar
      Windows socket engine: do not discard datagram on critical failure · c86ca601
      Alex Trotsenko authored
      
      On some network conditions, WSARecvFrom() may return WSAECONNRESET
      or WSAENETRESET error code to indicate that the connection has been
      broken and should be reset. According to MSDN documentation,
      WSAECONNRESET mean that the virtual circuit was reset by the remote
      side executing a hard or abortive close. Also, it would indicate
      that a previous send operation resulted in an ICMP "Port Unreachable"
      message. For a datagram socket, WSAENETRESET indicates that the time
      to live has expired.
      
      Previously, hasPendingDatagram() discarded datagrams with these
      errors and reported no data available. This behavior is incorrect
      and can lead to infinite "freezing" of the socket.
      
      This patch allows to handle these notifications as a result of the
      readDatagram() call.
      
      Task-number: QTBUG-46552
      Change-Id: I7d84babe22d36736b928b4dd4841e30be53d16bd
      Reviewed-by: default avatarKai Koehne <kai.koehne@theqtcompany.com>
      Reviewed-by: default avatarJoerg Bornemann <joerg.bornemann@theqtcompany.com>
      c86ca601
    • Alex Trotsenko's avatar
      Fix the spurious socket notifications under Windows · a6ec8692
      Alex Trotsenko authored
      
      To handle network events, QEventDispatcherWin32 uses I/O model
      based on notifications through the window message queue. Having
      successfully posted notification of a particular event to an
      application window, no further messages for that network event
      will be posted to the application window until the application
      makes the function call that implicitly re-enables notification
      of that network event. With these semantics, an application need
      not read all available data in response to an FD_READ message:
      a single recv in response to each FD_READ message is appropriate.
      If an application issues multiple recv calls in response to a
      single FD_READ, it can receive multiple FD_READ messages
      (including spurious).
      
      To solve this issue, this patch always disables the notifier
      after getting a notification, and re-enables it only when the
      message queue is empty.
      
      Task-number: QTBUG-46552
      Change-Id: I05df67032911cd1f5927fa7912f7864bfbf8711e
      Reviewed-by: default avatarJoerg Bornemann <joerg.bornemann@theqtcompany.com>
      a6ec8692
    • Alex Trotsenko's avatar
      QUdpSocket: avoid infinite read notifier blocking · 378e26dd
      Alex Trotsenko authored
      
      There was a small amount of time between the last readDatagram() call
      and disabling a read notifier in case the socket had a pending
      datagram. If a new datagram arrived in this period, this qualified as
      absence of a datagram reader. Do not change the read notifier state
      because it is disabled on canReadNotification() entry and always enabled
      by the datagram reader.
      
      Thanks to Peter Seiderer, who investigated the same: "Querying
      hasPendingDatagrams() for enabling/disabling setReadNotificationEnabled()
      is racy (a new datagram could arrive after readDatagam() is called and
      before hasPendingDatagrams() is checked). But for unbuffered sockets the
      ReadNotification is already disabled before the readReady signal is
      emitted and should be re-enabled when calling read() or readDatagram()
      from the user."
      
      However, this patch does not completely solve the problem under Windows,
      as the socket notifier may emit spurious notifications.
      
      Task-number: QTBUG-46552
      Change-Id: If7295d53ae2c788c39e86303502f38135c4d6180
      Reviewed-by: default avatarOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
      Reviewed-by: default avatarThiago Macieira <thiago.macieira@intel.com>
      378e26dd
    • Richard Moe Gustavsen's avatar
      iOS: silence compiler warning about unimplemented 'selectionRectsForRange' · d75505fa
      Richard Moe Gustavsen authored
      
      Implement a dummy method to silence the compiler.
      After testing, this method seems to never be called. Which is
      good, since the current IM API in Qt have little to offer to resolve
      what is being asked. Until a need arise, we just return
      an empty array.
      
      Change-Id: I573eb8205a7e635a46d487ae175fb46e3a602001
      Reviewed-by: default avatarTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
      d75505fa
    • Pasi Petäjäjärvi's avatar
      Fix tst_QGuiApplication for embedded platforms using eglfs QPA · 4b2db07b
      Pasi Petäjäjärvi authored
      
      Disable input and cursor for QGuiApplication instances used in
      autotest to initialize it properly.
      
      Change-Id: I78dc9b776269c082c20f244a51f858289129275d
      Reviewed-by: default avatarLaszlo Agocs <laszlo.agocs@theqtcompany.com>
      4b2db07b
  10. 09 Sep, 2015 - 1 commit
  11. 07 Sep, 2015 - 5 commits
  12. 06 Sep, 2015 - 2 commits
  13. 04 Sep, 2015 - 12 commits
  14. 03 Sep, 2015 - 1 commit