Still need help fixing deadlock (GDI/metafile)

Walt Ogburn reuben at ugcs.caltech.edu
Wed Jan 11 13:08:36 CST 2006


Hi Cihan,

What happens if you comment out #define STRETCH_VIA_DIB in
dlls/gdi/mfdrv/bitblt.c?  This will make it use GetBitmapBits instead of
GetDIBits.

- Walter




On Wed, 11 Jan 2006, Cihan Altinay wrote:

> Since nobody seems to be able to help me with this problem at the moment
> I opened a bug report[1] for it. I would appreciate if somebody with
> more knowledge could take a quick look at it. Thanks!
>
> Cihan
>
> [1] http://bugs.winehq.org/show_bug.cgi?id=4284
>
>
> Cihan Altinay wrote:
> > Hi,
> >
> > I am still trying to finding the reason for PowerPoint 2000 causing a
> > deadlock if a file is opened that contains a preview which itself
> > contains a bitmap >90x90 pixels (ie. on the first slide).
> > After inserting some traces I feel I am pretty close but I'm
> > stuck since before the holidays. The problem is connected to GDI's
> > and/or metafile's StretchBlt (bitblt.c).
> > It calls MFDRV_StretchBlt and then the trouble begins as can be seen
> > from the output:
> >
> > <snip>
> > trace:bitblt:StretchBlt --Start--
> > trace:gdi:GDI_GetObjPtr (0x3b0c): enter 1
> > trace:dc:DC_GetDCPtr
> > trace:gdi:GDI_ReleaseObj (0x3b0c): leave 1
> > trace:gdi:GDI_GetObjPtr (0x3aec): enter 1
> > trace:dc:DC_GetDCPtr
> > trace:gdi:GDI_GetObjPtr (0x3b0c): enter 2
> > trace:dc:DC_GetDCPtr
> > trace:bitblt:StretchBlt 0x3aec 0,0 160x120 -> 0x3b0c 0,0 960x720 rop=cc0020
> > trace:gdi:GDI_GetObjPtr (0x3aec): enter 3
> > trace:dc:DC_GetDCPtr
> > trace:gdi:GDI_ReleaseObj (0x3aec): leave 3
> > trace:gdi:GetObjectW 0x3af8 24 0x7fc2f760
> > trace:gdi:GDI_GetObjPtr (0x3af8): enter 3
> > trace:gdi:GDI_ReleaseObj (0x3af8): leave 3
> > trace:gdi:GDI_GetObjPtr (0x3aec): enter 3
> > trace:dc:DC_GetDCPtr
> > trace:gdi:GDI_ReleaseObj (0x3aec): leave 3
> > trace:gdi:GDI_GetObjPtr (0x3aec): enter 3
> > trace:dc:DC_GetDCPtr
> > trace:gdi:GDI_ReleaseObj (0x3aec): leave 3
> > trace:gdi:GDI_GetObjPtr (0x3aec): enter 3
> > trace:dc:DC_GetDCPtr
> > trace:gdi:GDI_ReleaseObj (0x3aec): leave 3
> > trace:metafile:MFDRV_StretchBlt MF_StretchBltViaDIB->len = 20292  rop=cc0020
> > PixYPM=3780 Caps=96
> > trace:bitmap:GetDIBits
> > trace:dc:CreateCompatibleDC --Checking lock-- hdc=0x3aec
> > err:syslevel:_CheckNotSysLevel Holding lock 0x7fad49e0 level 3
> > </snip>
> >
> > Yes well... hdcDst and hdcSrc aren't freed yet from within StretchBlt.
> > There is a comment "FIXME: there is a race condition here". Could that
> > be the cause for the deadlock?
> > Btw. this might be the same problem as bug #3125 as both refer to the
> > preview and both cause a deadlock.
> >
> > Can somebody give me a hint on how to tackle this? It is really important
> > for us... If you need more output please let me know.
> >
> > Thanks a lot,
> > Cihan
> >
> >
> >
>
>
>



More information about the wine-devel mailing list