Added patch to make ddraw1 and ddraw_surface1 vtable as writable.

This commit is contained in:
Sebastian Lackner 2015-10-02 17:55:54 +02:00
parent 784acaf1fa
commit 59e96aed08
5 changed files with 65 additions and 1 deletions

View File

@ -34,7 +34,7 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [15]:**
**Bug fixes and features included in the next upcoming release [16]:**
* Add implementation for msidb commandline tool
* BitBlt and StretchDIBits should be marked as hotpatchable
@ -44,6 +44,7 @@ Included bug fixes and improvements
* Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403))
* Fix calculation of listbox size when horizontal scrollbar is present ([Wine Bug #38142](https://bugs.winehq.org/show_bug.cgi?id=38142))
* Implement additional stub functions in authz.dll
* Make ddraw1 and ddraw_surface1 vtable as writable
* Pass cookie by reference to msvcrt_local_unwind4 in _seh_longjmp_unwind4 ([Wine Bug #39356](https://bugs.winehq.org/show_bug.cgi?id=39356))
* Protect TVM_GETITEM from invalid item pointers ([Wine Bug #33001](https://bugs.winehq.org/show_bug.cgi?id=33001))
* Reduce stack usage of virtual memory functions ([Wine Bug #34558](https://bugs.winehq.org/show_bug.cgi?id=34558))

1
debian/changelog vendored
View File

@ -26,6 +26,7 @@ wine-staging (1.7.52) UNRELEASED; urgency=low
hotpatchable.
* Added patch to mark BitBlt and StretchDIBits as hotpatchable.
* Added patch to mark WritePrivateProfileStringA as hotpatchable.
* Added patch to make ddraw1 and ddraw_surface1 vtable as writable.
* Removed patch to fix possible memory leak in netprofm init_networks (fixed
upstream).
* Removed patch for stub of dwmapi.DwmUpdateThumbnailProperties (accepted

View File

@ -0,0 +1,45 @@
From 9ac9e58e5c76a02e3746c4e4bd16b43766b35066 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 2 Oct 2015 17:29:43 +0200
Subject: ddraw: Remove const from ddraw1_vtbl and ddraw_surface1_vtbl.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bad Mojo Redux tries to hook ddraw1 and expects both interfaces to be writable.
Signed-off-by: Michael Müller <michael@fds-team.de>
---
dlls/ddraw/ddraw.c | 2 +-
dlls/ddraw/surface.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index c94bfee..bcb1608 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -4494,7 +4494,7 @@ static const struct IDirectDraw2Vtbl ddraw2_vtbl =
ddraw2_GetAvailableVidMem,
};
-static const struct IDirectDrawVtbl ddraw1_vtbl =
+static struct IDirectDrawVtbl ddraw1_vtbl =
{
/* IUnknown */
ddraw1_QueryInterface,
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 6b6ddb9..71bcba4 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -5421,7 +5421,7 @@ static const struct IDirectDrawSurface2Vtbl ddraw_surface2_vtbl =
ddraw_surface2_PageUnlock,
};
-static const struct IDirectDrawSurfaceVtbl ddraw_surface1_vtbl =
+static struct IDirectDrawSurfaceVtbl ddraw_surface1_vtbl =
{
/* IUnknown */
ddraw_surface1_QueryInterface,
--
2.5.1

View File

@ -0,0 +1 @@
Fixes: Make ddraw1 and ddraw_surface1 vtable as writable

View File

@ -125,6 +125,7 @@ patch_enable_all ()
enable_ddraw_EnumSurfaces="$1"
enable_ddraw_IDirect3DTexture2_Load="$1"
enable_ddraw_Rendering_Targets="$1"
enable_ddraw_Write_Vtable="$1"
enable_ddraw_ZBufferBitDepths="$1"
enable_ddraw_d3d_execute_buffer="$1"
enable_dinput_Events="$1"
@ -476,6 +477,9 @@ patch_enable ()
ddraw-Rendering_Targets)
enable_ddraw_Rendering_Targets="$2"
;;
ddraw-Write_Vtable)
enable_ddraw_Write_Vtable="$2"
;;
ddraw-ZBufferBitDepths)
enable_ddraw_ZBufferBitDepths="$2"
;;
@ -2852,6 +2856,18 @@ if test "$enable_ddraw_Rendering_Targets" -eq 1; then
) >> "$patchlist"
fi
# Patchset ddraw-Write_Vtable
# |
# | Modified files:
# | * dlls/ddraw/ddraw.c, dlls/ddraw/surface.c
# |
if test "$enable_ddraw_Write_Vtable" -eq 1; then
patch_apply ddraw-Write_Vtable/0001-ddraw-Remove-const-from-ddraw1_vtbl-and-ddraw_surfac.patch
(
echo '+ { "Michael Müller", "ddraw: Remove const from ddraw1_vtbl and ddraw_surface1_vtbl.", 1 },';
) >> "$patchlist"
fi
# Patchset ddraw-ZBufferBitDepths
# |
# | This patchset fixes the following Wine bugs: