Avoid crashes in ddraw.dll when loading it without x11drv

Dmitry Timoshkov dmitry at baikal.ru
Mon Dec 6 03:41:01 CST 2004


Hello,

Changelog:
    Dmitry Timoshkov <dmitry at codeweavers.com>
    Avoid crashes in ddraw.dll when loading it without x11drv, for instance
    from wineprefixcreate in a text mode console.

diff -up cvs/hq/wine/dlls/ddraw/d3ddevice/mesa.c wine/dlls/ddraw/d3ddevice/mesa.c
--- cvs/hq/wine/dlls/ddraw/d3ddevice/mesa.c	2004-12-02 14:04:31.000000000 +0800
+++ wine/dlls/ddraw/d3ddevice/mesa.c	2004-12-06 14:31:51.000000000 +0800
@@ -4212,6 +4212,12 @@ d3ddevice_init_at_startup(void *gl_handl
     int major, minor, patch, num_parsed;
     
     TRACE("Initializing GL...\n");
+
+    if (!drawable)
+    {
+        WARN("x11drv not loaded - D3D support disabled!\n");
+        return FALSE;
+    }
     
     /* Get a default rendering context to have the 'caps' function query some info from GL */    
     device_context = GetDC(0);
diff -up cvs/hq/wine/dlls/ddraw/ddraw/hal.c wine/dlls/ddraw/ddraw/hal.c
--- cvs/hq/wine/dlls/ddraw/ddraw/hal.c	2004-09-08 17:35:51.000000000 +0900
+++ wine/dlls/ddraw/ddraw/hal.c	2004-12-06 14:29:09.000000000 +0800
@@ -213,6 +213,9 @@ static BOOL initialize(void)
 static void cleanup(void)
 {
     DDHAL_DESTROYDRIVERDATA data;
+
+    if (!dd_cbs.HALDD.DestroyDriver) return;
+
     data.lpDD = NULL;
     data.ddRVal = 0;
     data.DestroyDriver = dd_cbs.HALDD.DestroyDriver;






More information about the wine-patches mailing list