http://bugs.winehq.org/show_bug.cgi?id=35524
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |gdiplus Version|1.7.11 |1.5.31 Summary|Adobe Audition 3.0 crashes |Adobe Audition 3.0 crashes | |on startup | |(GdipFillRectangles must | |validate graphics object | |parameter) Ever confirmed|0 |1
--- Comment #12 from Anastasius Focht focht@gmx.net --- Hello folks,
there is no need to do regression tests.
Since you started the old Wine 1.5.x prefix always with multiple components having a native override and now a fresh Wine 1.7.x prefix without overrides it's obvious that an old bug that was always present reappeared.
The libpng issue is separate, report that to the distro package maintainers.
Making this bug about gdiplus issue.
Relevant part of trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Adobe/Adobe Audition 3.0
$ WINEDEBUG=+tid,+seh,+relay,+gdiplus wine ./Audition.exe >>log.txt 2>&1 ... 0025:Call gdiplus.GdipCreateFromHDC(000f003f,0033dce8) ret=480917e0 0025:trace:gdiplus:GdipCreateFromHDC (0xf003f, 0x33dce8) 0025:trace:gdiplus:GdipCreateFromHDC2 (0xf003f, (nil), 0x33dce8) 0025:Call ntdll.RtlAllocateHeap(00110000,00000008,0000008c) ret=7ec2b542 0025:Ret ntdll.RtlAllocateHeap() retval=08278fe8 ret=7ec2b542 0025:trace:gdiplus:GdipSetMatrixElements (0x8279028, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00) 0025:trace:gdiplus:GdipCreateRegion 0x8279044 0025:Call ntdll.RtlAllocateHeap(00110000,00000008,00000018) ret=7ec2b542 0025:Ret ntdll.RtlAllocateHeap() retval=08291ae0 ret=7ec2b542 0025:trace:gdiplus:GdipCreateRegion => 0x8291ae0 0025:Call gdi32.GetCurrentObject(000f003f,00000007) ret=7ec32915 0025:Ret gdi32.GetCurrentObject() retval=0001001a ret=7ec32915 0025:Call gdi32.GetObjectW(0001001a,00000054,0033db5c) ret=7ec3293e 0025:Ret gdi32.GetObjectW() retval=00000018 ret=7ec3293e 0025:Call user32.WindowFromDC(000f003f) ret=7ec3297b 0025:Ret user32.WindowFromDC() retval=00010150 ret=7ec3297b 0025:Call gdi32.GetDeviceCaps(000f003f,00000058) ret=7ec329fa 0025:Ret gdi32.GetDeviceCaps() retval=00000060 ret=7ec329fa 0025:Call gdi32.GetDeviceCaps(000f003f,0000005a) ret=7ec32a23 0025:Ret gdi32.GetDeviceCaps() retval=00000060 ret=7ec32a23 0025:trace:gdiplus:GdipCreateFromHDC2 <-- 0x8278fe8 0025:Ret gdiplus.GdipCreateFromHDC() retval=00000000 ret=480917e0 0025:Call gdiplus.GdipCreateBitmapFromScan0(00000000,00000000,00000000,0026200a,00000000,0033dce0) ret=48091859 0025:trace:gdiplus:GdipCreateBitmapFromScan0 0 0 0 0x26200a (nil) 0x33dce0 0025:Ret gdiplus.GdipCreateBitmapFromScan0() retval=00000002 ret=48091859 0025:Call gdiplus.GdipGetImageGraphicsContext(00000000,0033dcc0) ret=4809187a 0025:trace:gdiplus:GdipGetImageGraphicsContext (nil) 0x33dcc0 0025:Ret gdiplus.GdipGetImageGraphicsContext() retval=00000002 ret=4809187a 0025:Call gdiplus.GdipCreateSolidFill(ff848484,0033dcc0) ret=480918c6 0025:trace:gdiplus:GdipCreateSolidFill (ff848484, 0x33dcc0) 0025:Call ntdll.RtlAllocateHeap(00110000,00000008,00000008) ret=7ec2b542 0025:Ret ntdll.RtlAllocateHeap() retval=08291b00 ret=7ec2b542 0025:trace:gdiplus:GdipCreateSolidFill <-- 0x8291b00 0025:Ret gdiplus.GdipCreateSolidFill() retval=00000000 ret=480918c6 0025:Call gdiplus.GdipFillRectangleI(00000000,08291b00,00000000,00000000,00000000,00000000) ret=480918e7 0025:trace:gdiplus:GdipFillRectangleI ((nil), 0x8291b00, 0, 0, 0, 0) 0025:trace:gdiplus:GdipFillRectangles ((nil), 0x8291b00, 0x33dbf8, 1) 0025:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7ec3887d ip=7ec3887d tid=0025 0025:trace:seh:raise_exception info[0]=00000000 0025:trace:seh:raise_exception info[1]=00000010 0025:trace:seh:raise_exception eax=00000000 ebx=7ec8c000 ecx=00000000 edx=7bcecb88 esi=0033dbc0 edi=0033dc58 0025:trace:seh:raise_exception ebp=0033dba8 esp=0033db60 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010202 ... 0025:Call user32.MessageBoxW(00000000,02cb4858 L"To continue working where you left off, please restart Audition.",02c49ba0 L"Shutting Down...",00040000) ret=480c0f71 --- snip ---
Wine needs to validate the graphics object before accessing it, returning an error.
Source: http://source.winehq.org/git/wine.git/blob/2d487e22d6faa3f851804d5e406420631...
--- snip --- 3742 GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpRectF *rects, 3743 INT count) 3744 { 3745 GpStatus status; 3746 GpPath *path; 3747 3748 TRACE("(%p, %p, %p, %d)\n", graphics, brush, rects, count); 3749 3750 if(!rects) 3751 return InvalidParameter; 3752 3753 if (graphics->image && graphics->image->type == ImageTypeMetafile) 3754 { 3755 status = METAFILE_FillRectangles((GpMetafile*)graphics->image, brush, rects, count); 3756 /* FIXME: Add gdi32 drawing. */ 3757 return status; 3758 } ... --- snip ---
'winetricks gdiplus' works around.
There are no further native overrides needed.
$ wine --version wine-1.7.12-146-gc4415b2
Regards