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