diff --git a/dlls/winex11.drv/dib.c b/dlls/winex11.drv/dib.c index c921034..eee508a 100644 --- a/dlls/winex11.drv/dib.c +++ b/dlls/winex11.drv/dib.c @@ -39,6 +39,7 @@ #include "wingdi.h" #include "x11drv.h" #include "excpt.h" +#include "wine/exception.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(bitmap); @@ -3507,7 +3508,7 @@ static int X11DRV_DIB_SetImageBits( const X11DRV_DIB_IMAGEBITS_DESCR *descr ) TRACE("Bmp: depth=%d/%d r=%lx g=%lx b=%lx\n", bmpImage->depth,bmpImage->bits_per_pixel, bmpImage->red_mask,bmpImage->green_mask,bmpImage->blue_mask); - +__TRY{ /* Transfer the pixels */ switch(descr->infoBpp) { @@ -3586,7 +3587,9 @@ static int X11DRV_DIB_SetImageBits( const X11DRV_DIB_IMAGEBITS_DESCR *descr ) XPutImage( gdi_display, descr->drawable, descr->gc, bmpImage, descr->xSrc, descr->ySrc, descr->xDest, descr->yDest, descr->width, descr->height ); +} +__EXCEPT_PAGE_FAULT {lines = 0;} __ENDTRY if (!descr->image) XDestroyImage( bmpImage ); wine_tsx11_unlock(); return lines;