This was diff'd from winex cvs, but it should apply fine to winehq cvs (after looking briefly at cvs.winehq.com). Fixes a crash in an old win16 game. Changelog: * 'get descriptor' in the int31 handler should return the correct segment limit to the program. David Hammerton david@transgaming.com -- David Hammerton programmer TransGaming Technologies Inc. http://www.transgaming.com/ david@transgaming.com
Index: msdos/dpmi.c =================================================================== RCS file: /cvsroot/winex/wine/msdos/dpmi.c,v retrieving revision 1.1.1.12 diff -u -3 -p -r1.1.1.12 dpmi.c --- msdos/dpmi.c 31 Dec 2001 10:51:58 -0000 1.1.1.12 +++ msdos/dpmi.c 14 Oct 2002 16:57:29 -0000 @@ -314,6 +314,7 @@ void WINAPI INT_Int31Handler( CONTEXT86 TRACE("get descriptor (0x%04x)\n",BX_reg(context)); { LDT_ENTRY entry; + wine_ldt_get_entry( LOWORD(context->Ebx), &entry); wine_ldt_set_base( &entry, (void*)W32S_WINE2APP(wine_ldt_get_base(&entry)) ); /* FIXME: should use ES:EDI for 32-bit clients */ *(LDT_ENTRY *)MapSL( MAKESEGPTR( context->SegEs, LOWORD(context->Edi) )) = entry;