[Bug 779] New - wine regression in Leap Ahead Preschool
wine-bugs at winehq.com
wine-bugs at winehq.com
Sun Jun 9 18:18:07 CDT 2002
http://bugs.winehq.com/show_bug.cgi?id=779
*** shadow/779 Sun Jun 9 18:18:07 2002
--- shadow/779.tmp.1767 Sun Jun 9 18:18:07 2002
***************
*** 0 ****
--- 1,181 ----
+ +============================================================================+
+ | wine regression in Leap Ahead Preschool |
+ +----------------------------------------------------------------------------+
+ | Bug #: 779 Product: Wine |
+ | Status: UNCONFIRMED Version: CVS |
+ | Resolution: Platform: |
+ | Severity: normal OS/Version: All |
+ | Priority: P1 Component: wine-multimedia |
+ +----------------------------------------------------------------------------+
+ | Assigned To: wine-bugs at winehq.com |
+ | Reported By: tony_lambregts at telusplanet.net |
+ | CC list: Cc: |
+ +----------------------------------------------------------------------------+
+ | Milestone: TargetMilestone: --- |
+ | URL: |
+ +============================================================================+
+ | DESCRIPTION |
+ For several months now my kids have been able to enjoy most of their games on
+ linux using Wine. Leap Ahead Preschool was working 99.99% perfectly up untill
+ recently. I did some regression testing using CVS and have traced it down to
+ this patch http://cvs.winehq.com/patch.py?id=1022632260199058901592256 With this
+ patch applied Leap Ahead Preschool crashes on startup and brings up the
+ debugger with the following error.
+
+ Unhandled exception: page fault on write access to 0x00000010 in 32-bit code
+ (0x4099cd4c). In 32-bit mode.
+
+ 0x4099cd4c (MULTIMEDIA_PlaySound+0xdc [mmsystem.c:637] in winmm.dll.so): movl
+ %eax,0x10(%edx)639 LeaveCriticalSection(&iData->cs);
+
+
+ The following is the code that that is executed when the error occurs
+
+ static BOOL MULTIMEDIA_PlaySound(const void* pszSound, HMODULE hmod, DWORD
+ fdwSound, BOOL bUnicode)
+ {
+ WINE_PLAYSOUND* wps = NULL;
+ LPWINE_MM_IDATA iData = MULTIMEDIA_GetIData();
+
+ TRACE("pszSound='%p' hmod=%04X fdwSound=%08lX\n",
+ pszSound, hmod, fdwSound);
+
+ /* FIXME? I see no difference between SND_NOWAIT and SND_NOSTOP !
+ * there could be one if several sounds can be played at once...
+ */
+ if ((fdwSound & (SND_NOWAIT | SND_NOSTOP)) && iData->lpPlaySound != NULL)
+ return FALSE;
+
+ /* alloc internal structure, if we need to play something */
+ if (pszSound && !(fdwSound & SND_PURGE))
+ {
+ if (!(wps = PlaySound_Alloc(pszSound, hmod, fdwSound, bUnicode)))
+ return FALSE;
+ }
+
+ EnterCriticalSection(&iData->cs);
+ /* since several threads can enter PlaySound in parallel, we're not
+ * sure, at this point, that another thread didn't start a new playsound
+ */
+ while (iData->lpPlaySound != NULL)
+ {
+ ResetEvent(iData->psLastEvent);
+ /* FIXME: doc says we have to stop all instances of pszSound if it's non
+ * NULL... as of today, we stop all playing instances */
+ SetEvent(iData->psStopEvent);
+
+ LeaveCriticalSection(&iData->cs);
+ WaitForSingleObject(iData->psLastEvent, INFINITE);
+ EnterCriticalSection(&iData->cs);
+
+ ResetEvent(iData->psStopEvent);
+ }
+
+ wps->lpNext = iData->lpPlaySound;
+ *** ^^^^^^^ this is line 637 ^^^^^^^ ***
+
+ iData->lpPlaySound = wps;
+ LeaveCriticalSection(&iData->cs);
+
+ if (!pszSound || (fdwSound & SND_PURGE)) return TRUE;
+
+ if (fdwSound & SND_ASYNC)
+ {
+ DWORD id;
+ wps->bLoop = (fdwSound & SND_LOOP) ? TRUE : FALSE;
+ if (CreateThread(NULL, 0, proc_PlaySound, wps, 0, &id) != 0)
+ return TRUE;
+ }
+ else return proc_PlaySound(wps);
+
+ /* error cases */
+ PlaySound_Free(wps);
+ return FALSE;
+ }
+
+ The following is the backtrace
+ Backtrace:
+
+ =>0 0x4099cd4c (MULTIMEDIA_PlaySound+0xdc(pszSound=0x0, hmod=0x0, fdwSound=0x0,
+ bUnicode=0x0) [mmsystem.c:637] in winmm.dll.so) (ebp=405a5db0)
+
+
+ 1 0x4099ce5a (sndPlaySoundA+0x16(pszSoundA=0x0, uFlags=0x0) [mmsystem.c:695] in
+ winmm.dll.so) (ebp=405a5dc8)
+ 2 0x004090a6 (setup32.exe..text+0x80a6 in D:\install\setup32.exe) (ebp=405a5e0c)
+
+ 3 0x0041a84f (setup32.exe.EntryPoint+0xd14f in D:\install\setup32.exe)
+ (ebp=405a5eb0)
+ 4 0x0041a3ba (setup32.exe.EntryPoint+0xccba in D:\install\setup32.exe)
+ (ebp=405a5ed4)
+ 5 0x0041917c (setup32.exe.EntryPoint+0xba7c in D:\install\setup32.exe)
+ (ebp=405a5f40)
+ 6 0x00419481 (setup32.exe.EntryPoint+0xbd81 in D:\install\setup32.exe)
+ (ebp=405a5f5c)
+ 7 0x406b8dbf (WINPROC_wrapper+0x17 in user32.dll.so) (ebp=405a5f80)
+
+ 8 0x406b8e4a (WINPROC_CallWndProc+0x82(proc=0x419455, hwnd=0x10021, msg=0x7,
+ wParam=0x0, lParam=0x0) [winproc.c:183] in .so) (ebp=405a5fb0)
+
+
+ 9 0x406bf136 (CallWindowProcA+0x4a(func=0x419455, hwnd=0x10021, msg=0x7,
+ wParam=0x0, lParam=0x0) [winproc.c:2779] in use) (ebp=405a5fe4)
+
+
+ 10 0x406cdd32 (call_window_proc+0xf2(hwnd=0x10021, msg=0x7, wparam=0x0,
+ lparam=0x0, unicode=0x0) [message.c:1372] in use) (ebp=405a6040)
+
+
+ 11 0x406ce9e3 (SendMessageTimeoutA+0xdf(hwnd=0x10021, msg=0x7, wparam=0x0,
+ lparam=0x0, flags=0x0, timeout=0xffffffff, re5a60c4) [message.c:1784] in
+ user32.dll.so) (ebp=405a60a0)
+
+ 12 0x406ceb4b (SendMessageA+0x37(hwnd=0x10021, msg=0x7, wparam=0x0, lparam=0x0)
+ [message.c:1829] in user32.dll.so) (ebp=
+ 13 0x40698ca5 (FOCUS_SwitchFocus+0x65(pMsgQ=0x40385738, hFocusFrom=0x0,
+ hFocusTo=0x10021) [focus.c:58] in user32.dll.so) 60f8)
+
+
+ 14 0x406b848e (WINPOS_SetActiveWindow+0x496(hWnd=0x10021, fMouse=0x0,
+ fChangeFocus=0x1) [winpos.c:1370] in user32.dll.so a614c)
+
+
+ 15 0x406b74b6 (SetActiveWindow+0xd2(hwnd=0x10021) [winpos.c:723] in
+ user32.dll.so) (ebp=405a617c)
+ 16 0x40a40a66 (X11DRV_SetWindowPos+0x54e(winpos=0x405a6200) [winpos.c:978] in
+ x11drv.dll.so) (ebp=405a61f4)
+ 17 0x406b8815 (SetWindowPos+0x59(hwnd=0x10021, hwndInsertAfter=0x0, x=0x0,
+ y=0x0, cx=0x0, cy=0x0, flags=0x43) [winpos.c:user32.dll.so) (ebp=405a622c)
+
+
+ 18 0x40a410d9 (X11DRV_ShowWindow+0x1ad(hwnd=0x10021, cmd=0x5) [winpos.c:1242] in
+ x11drv.dll.so) (ebp=405a6274)
+ 19 0x406b7b67 (ShowWindow+0x33(hwnd=0x10021, cmd=0x5) [winpos.c:1007] in
+ user32.dll.so) (ebp=405a6290)
+ 20 0x0040595a (setup32.exe..text+0x495a in D:\install\setup32.exe)
+ (ebp=405a6310)
+ 21 0x00405099 (setup32.exe..text+0x4099 in D:\install\setup32.exe)
+ (ebp=405a6b78)
+ 22 0x00405186 (setup32.exe..text+0x4186 in D:\install\setup32.exe)
+ (ebp=405a6c24)
+ 23 0x0041a3ba (setup32.exe.EntryPoint+0xccba in D:\install\setup32.exe)
+ (ebp=405a6c48)
+ 24 0x0041917c (setup32.exe.EntryPoint+0xba7c in D:\install\setup32.exe)
+ (ebp=405a6cb4)
+ 25 0x00419481 (setup32.exe.EntryPoint+0xbd81 in D:\install\setup32.exe)
+ (ebp=405a6cd0)
+ 26 0x406b8dbf (WINPROC_wrapper+0x17 in user32.dll.so) (ebp=405a6cf4)
+
+ 27 0x406b8e4a (WINPROC_CallWndProc+0x82(proc=0x419455, hwnd=0x10021,msg=0x113,
+ wParam=0x1, lParam=0x0) [winproc.c:183] dll.so) (ebp=405a6d24)
+
+ 28 0x406bf197 (CallWindowProcA+0xab(func=0x40b906c4, hwnd=0x10021, msg=0x113,
+ wParam=0x1, lParam=0x0) [winproc.c:2795] ill.so) (ebp=405a6d58)
+
+ 29 0x406a16e2 (DispatchMessageA+0x11e(msg=0x42df60) [message.c:1051] in
+ user32.dll.so) (ebp=405a6d9c)
+ 30 0x0041d061 (setup32.exe.EntryPoint+0xf961 in D:\install\setup32.exe)
+ (ebp=00000000) ?
+
+ I think I got the back trace right but cut and paste from the console does not
+ work the way I expected.
\ No newline at end of file
More information about the wine-bugs
mailing list