Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Rishel <nicholas_rishel>2020-04-10 01:43:09 +0300
committerRay Molenkamp <github@lazydodo.com>2020-04-10 01:43:09 +0300
commit1a3928f33c76074a8d59eeca2b58187774cd7b4e (patch)
tree446352f2d2a20d55ddc9c69a9d64a65f124e1b67
parent5ebbd8f672175ed19fc67f3dd9d3841c8985e211 (diff)
Fix T75546: Solve possible endless loop in wintab initialisation
Some Wintab drivers report a zero length queue, this causes an unplanned never ending loop. Differential Revision: https://developer.blender.org/D7392 Reviewed by: Ray Molenkamp
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp
index d4fe7af8861..1ca0dd47cbe 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.cpp
+++ b/intern/ghost/intern/GHOST_WindowWin32.cpp
@@ -1072,11 +1072,10 @@ void GHOST_WindowWin32::initializeWintab()
// Wintab provides no way to determine the maximum queue size aside from checking if attempts
// to change the queue size are successful.
const int maxQueue = 500;
- int initialQueueSize = m_wintab.queueSizeGet(m_wintab.context);
- int queueSize = initialQueueSize;
+ int queueSize = m_wintab.queueSizeGet(m_wintab.context);
while (queueSize < maxQueue) {
- int testSize = min(queueSize + initialQueueSize, maxQueue);
+ int testSize = min(queueSize + 16, maxQueue);
if (m_wintab.queueSizeSet(m_wintab.context, testSize)) {
queueSize = testSize;
}