diff --git a/README.md b/README.md index 5758882b..d24d4a7f 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Wine-Compholio contains fixes for the following Wine bugs: * Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](http://bugs.winehq.org/show_bug.cgi?id=30639 "Audio stuttering and performance drops in Star Wolves 3")) * Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](http://bugs.winehq.org/show_bug.cgi?id=10767 "lstrcmp and others do not compare punctuation characters correctly")) * Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550 "ConnectNamedPort should never return OK in overlapped mode (affects chromium ui_tests.exe)")) +* Fix for programs leaking wndproc slots ([Wine Bug #32451](http://bugs.winehq.org/show_bug.cgi?id=32451 "Multiple GOG.com installer bundles show a broken/unresponsive dialog window during installation (installer process running out of wndproc slots)")) * GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](http://bugs.winehq.org/show_bug.cgi?id=15980 "Rhapsody 2 crashes on startup (GetSecurityInfo returns NULL DACL for process object)")) * Implement LoadIconMetric function ([Wine Bug #35375](http://bugs.winehq.org/show_bug.cgi?id=35375 "Multiple applications need Vista+ API COMCTL32.dll.380 a.k.a. 'LoadIconMetric' (Solidworks 2013 systray monitor, Microsoft One/SkyDrive)")) * Implement a Microsoft Yahei replacement font ([Wine Bug #13829](http://bugs.winehq.org/show_bug.cgi?id=13829 "Wine does not have CJK fonts")) diff --git a/debian/changelog b/debian/changelog index f8912d17..a3e8eef8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,7 @@ wine-compholio (1.7.24) UNRELEASED; urgency=low * Added patch to fix invalid memory access in windowscodecs/PropertyBag. * Added patch to use a linear resampler when there a large number of dsound mixing buffers. * Added patch to fix comparison of punctuation characters in lstrcmp. + * Added patch to workaround programs leaking wndproc splots. * Removed patch to create Vista directories (accepted upstream). * Removed strmbase/quartz locking fix patches (accepted upstream). * Removed windowscodecs/PropertyBag patch (accepted upstream). diff --git a/patches/Makefile b/patches/Makefile index 5e595223..f4ed38ed 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -39,6 +39,7 @@ PATCHLIST := Miscellaneous.ok \ shlwapi-UrlCombine.ok \ user32-GetSystemMetrics.ok \ user32-GetTipText.ok \ + user32-WndProc.ok \ wineboot-HKEY_DYN_DATA.ok \ winepulse-PulseAudio_Support.ok \ winex11-XEMBED.ok \ @@ -712,6 +713,25 @@ user32-GetTipText.ok: echo '+ { "user32-GetTipText", "Erich E. Hoover", "Handle TOOLTIPS_GetTipText edge cases." },'; \ ) > user32-GetTipText.ok +# Patchset user32-WndProc +# | +# | Included patches: +# | * Workaround for programs leaking wndproc splots. [by Sebastian Lackner] +# | +# | This patchset fixes the following Wine bugs: +# | * [#32451] Multiple GOG.com installer bundles show a broken/unresponsive dialog window during installation (installer +# | process running out of wndproc slots) +# | +# | Modified files: +# | * dlls/user32/winproc.c +# | +.INTERMEDIATE: user32-WndProc.ok +user32-WndProc.ok: + $(PATCH) < user32-WndProc/0001-user32-Increase-MAX_WINPROCS-to-16384.patch + @( \ + echo '+ { "user32-WndProc", "Sebastian Lackner", "Workaround for programs leaking wndproc splots." },'; \ + ) > user32-WndProc.ok + # Patchset wineboot-HKEY_DYN_DATA # | # | Included patches: diff --git a/patches/user32-WndProc/0001-user32-Increase-MAX_WINPROCS-to-16384.patch b/patches/user32-WndProc/0001-user32-Increase-MAX_WINPROCS-to-16384.patch new file mode 100644 index 00000000..fc55db80 --- /dev/null +++ b/patches/user32-WndProc/0001-user32-Increase-MAX_WINPROCS-to-16384.patch @@ -0,0 +1,25 @@ +From a857ce50c5f1e48d7c08c034374b742292d18344 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Fri, 8 Aug 2014 23:40:58 +0200 +Subject: user32: Increase MAX_WINPROCS to 16384. + +--- + dlls/user32/winproc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dlls/user32/winproc.c b/dlls/user32/winproc.c +index 57adfc2..e18dd5e 100644 +--- a/dlls/user32/winproc.c ++++ b/dlls/user32/winproc.c +@@ -45,7 +45,7 @@ typedef struct tagWINDOWPROC + WNDPROC procW; /* Unicode window proc */ + } WINDOWPROC; + +-#define MAX_WINPROCS 4096 ++#define MAX_WINPROCS 16384 + #define MAX_WINPROC_RECURSION 64 + #define WINPROC_PROC16 ((WINDOWPROC *)1) /* placeholder for 16-bit window procs */ + +-- +1.7.9.5 + diff --git a/patches/user32-WndProc/definition b/patches/user32-WndProc/definition new file mode 100644 index 00000000..600f231a --- /dev/null +++ b/patches/user32-WndProc/definition @@ -0,0 +1,4 @@ +Author: Sebastian Lackner +Subject: Workaround for programs leaking wndproc splots. +Revision: 1 +Fixes: [32451] Fix for programs leaking wndproc slots