Vincent Povirk : mscoree: Preserve %ecx when calling ReallyFixupVTable.
Alexandre Julliard
julliard at winehq.org
Thu Sep 6 13:37:22 CDT 2012
Module: wine
Branch: master
Commit: b5c663ee1e4fd092e51735de219007bdb47d46d1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b5c663ee1e4fd092e51735de219007bdb47d46d1
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Wed Sep 5 15:25:59 2012 -0500
mscoree: Preserve %ecx when calling ReallyFixupVTable.
---
dlls/mscoree/corruntimehost.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/dlls/mscoree/corruntimehost.c b/dlls/mscoree/corruntimehost.c
index ecefe75..da46d61 100644
--- a/dlls/mscoree/corruntimehost.c
+++ b/dlls/mscoree/corruntimehost.c
@@ -827,6 +827,8 @@ static void get_utf8_args(int *argc, char ***argv)
struct vtable_fixup_thunk
{
+ /* push %ecx */
+ BYTE i7;
/* sub $0x4,%esp */
BYTE i1[3];
/* mov fixup,(%esp) */
@@ -839,12 +841,15 @@ struct vtable_fixup_thunk
BYTE i4[2];
/* pop %eax */
BYTE i5;
+ /* pop %ecx */
+ BYTE i8;
/* jmp *vtable_entry */
BYTE i6[2];
void *vtable_entry;
};
static const struct vtable_fixup_thunk thunk_template = {
+ 0x51,
{0x83,0xec,0x04},
{0xc7,0x04,0x24},
NULL,
@@ -852,6 +857,7 @@ static const struct vtable_fixup_thunk thunk_template = {
NULL,
{0xff,0xd0},
0x58,
+ 0x59,
{0xff,0x25},
NULL
};
More information about the wine-cvs
mailing list