[Bug 12439] Regression: Age of Mythology: Installer page faults

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Apr 8 13:28:19 CDT 2008


http://bugs.winehq.org/show_bug.cgi?id=12439





--- Comment #6 from Aric Stewart <aric at codeweavers.com>  2008-04-08 13:28:19 ---
Patch submitted to winehq that should correct this:

diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c
index 0995fb6..1ffe559 100644
--- a/dlls/imm32/imm.c
+++ b/dlls/imm32/imm.c
@@ -109,6 +109,8 @@ static const WCHAR szwWineIMCProperty[] =
{'W','i','n','e','I','m','m','H','I','
 #define is_himc_ime_unicode(p)  (p->immKbd->imeInfo.fdwProperty &
IME_PROP_UNICODE)
 #define is_kbd_ime_unicode(p)  (p->imeInfo.fdwProperty & IME_PROP_UNICODE)

+static BOOL IMM_DestroyContext(HIMC hIMC);
+
 static inline WCHAR *strdupAtoW( const char *str )
 {
     WCHAR *ret = NULL;
@@ -150,7 +152,7 @@ static void IMM_InitThreadData(void)
 static void IMM_FreeThreadData(void)
 {
     IMMThreadData* data = TlsGetValue(tlsIndex);
-    ImmDestroyContext(data->defaultContext);
+    IMM_DestroyContext(data->defaultContext);
     DestroyWindow(data->hwndDefault);
     HeapFree(GetProcessHeap(),0,data);
     TRACE("Thread Data Destroyed\n");
@@ -510,7 +512,7 @@ HIMC WINAPI ImmCreateContext(void)
     if (!new_context->immKbd->pImeSelect(new_context, TRUE))
     {
         TRACE("Selection of IME failed\n");
-        ImmDestroyContext(new_context);
+        IMM_DestroyContext(new_context);
         return 0;
     }

@@ -520,10 +522,7 @@ HIMC WINAPI ImmCreateContext(void)
     return (HIMC)new_context;
 }

-/***********************************************************************
- *             ImmDestroyContext (IMM32.@)
- */
-BOOL WINAPI ImmDestroyContext(HIMC hIMC)
+static BOOL IMM_DestroyContext(HIMC hIMC)
 {
     InputContextData *data = (InputContextData*)hIMC;

@@ -550,6 +549,17 @@ BOOL WINAPI ImmDestroyContext(HIMC hIMC)
 }

 /***********************************************************************
+ *             ImmDestroyContext (IMM32.@)
+ */
+BOOL WINAPI ImmDestroyContext(HIMC hIMC)
+{
+    if (hIMC != IMM_GetThreadData()->defaultContext)
+        return IMM_DestroyContext(hIMC);
+    else
+        return FALSE;
+}
+
+/***********************************************************************
  *             ImmDisableIME (IMM32.@)
  */
 BOOL WINAPI ImmDisableIME(DWORD idThread)


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list