http://bugs.winehq.org/show_bug.cgi?id=34571
Bug #: 34571 Summary: EasiSlides v4 crashes when clicking a folder listbox item (GdipFillPath failure) Product: Wine Version: 1.7.2 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: gdiplus AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net Classification: Unclassified
Hello folks,
a user reported this app not working.
Prerequisites: 'winetricks -q dotnet20 jet40'
The app starts fine but when you click an item in the "folder" listbox it crashes with managed backtrace:
--- snip --- ************** Exception Text ************** System.ArgumentException: Parameter is not valid. at System.Drawing.Graphics.CheckErrorStatus(Int32 status) at System.Drawing.Graphics.FillPath(Brush brush, GraphicsPath path) at Easislides.gf.OutputOneLineToScreen(SongSettings InItem, String ExtractedText, Font InFont, Graphics g, Color InColour, StringAlignment alignformat, Int32 InUseShadowFont, Int32 InUseOutlineFont, Int32 x, Int32 y, Int32 w, Int32 h, Boolean IndentLeftAligned) at Easislides.gf.OutputOneLineToScreen(SongSettings InItem, String ExtractedText, Font InFont, Graphics g, Color InColour, StringAlignment alignformat, Int32 InUseShadowFont, Int32 InUseOutlineFont, Int32 x, Int32 y, Int32 w, Int32 h) at Easislides.gf.DataDisplaySlides(SongSettings InItem, Graphics& g, Font tempFont, Color In_TextColour, RectangleF rect_slidesinfo, Int32 VersesSymOffsetTop, Int32 SlidesSymOffsetTop, Int32 RectOffsetTop, Int32 OffsetLeft, Boolean DisplayIndicators) at Easislides.gf.DP_SetSlideIndicators(SongSettings InItem, ImageTransitionControl& InPic, Graphics& g, Font tempFont, RectangleF rect_slidesinfo) at Easislides.gf.DrawDisplayPanel(SongSettings InItem, Int32 InHideDisplayPanel, ImageTransitionControl& InPictureBox, Graphics g) at Easislides.gf.DrawText(SongSettings& InItem, ImageTransitionControl& InPictureBox, ListView LyricsAndNotationsList, Int32 InUseShadowFont, Int32 InUseOutlineFont, Int32 InShowNotations, Int32 InShowInterlace, Int32 InShowVerticalAlign, Int32 InHideDisplayPanel, TransitionAction TransitionAction, Boolean DoActiveIndicator, Boolean ClearAll) at Easislides.gf.ShowDBSlide(SongSettings& InItem, ImageTransitionControl& InPictureBox, Boolean DoActiveIndicator, TransitionAction TransitionAction, Boolean RedoBackground) at Easislides.gf.ShowDBSlide(SongSettings& InItem, ImageTransitionControl& PInPictureBox, ImageTransitionControl& OInPictureBox, Boolean DoActiveIndicator, TransitionAction TransitionAction) at Easislides.FrmMain.ShowSlide(SongSettings& InItem, TransitionAction TransitionAction, Boolean DoActiveIndicator) at Easislides.FrmMain.ShowSlide(SongSettings& InItem, TransitionAction TransitionAction) at Easislides.FrmMain.DisplayLyrics(SongSettings InItem, Int32 StartingSlide, Boolean ScrollToCaret, Int32 GapItemBackground, TransitionAction TransitionAction) at Easislides.FrmMain.DisplayLyrics(SongSettings InItem, Int32 StartingSlide, Boolean ScrollToCaret) at Easislides.FrmMain.LoadItem(SongSettings& InItem, String InIDString, String InFormatString, Int32 StartingSlide, String& InTitle, Boolean ScrollToCaret) at Easislides.FrmMain.SongsListIndexChanged(Int32 StartingSlide, Boolean ScrollToCaret) at Easislides.FrmMain.SongsListIndexChanged(Int32 StartingSlide) at Easislides.FrmMain.SongsListIndexChanged() at Easislides.FrmMain.SongsList_MouseUp(Object sender, MouseEventArgs e) at System.Windows.Forms.Control.OnMouseUp(MouseEventArgs e) ... --- snip ---
A relay/gdiplus trace log with more annotations ("***" msg were added):
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/EasiSlides
$ WINEDEBUG=+tid,+seh,+relay,+gdiplus wine ./Easislides.exe >>log2.txt 2>&1 ... 003b:Call gdiplus.GdipFillPath(046bb4d8,046d4538,046d41e8) ret=03876f7c 003b:trace:gdiplus:GdipFillPath (0x46bb4d8, 0x46d4538, 0x46d41e8) 003b:trace:gdiplus:GdipCreateRegionPath 0x46d41e8, 0x33dbd8 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000028) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=046d4648 ret=7e1eb39a 003b:trace:gdiplus:GdipClonePath (0x46d41e8, 0x46d465c) 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000018) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=046d4678 ret=7e1eb39a 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000000) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=046d4698 ret=7e1eb39a 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000000) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=046d46b0 ret=7e1eb39a 003b:trace:gdiplus:GdipFillRegion (0x46bb4d8, 0x46d4538, 0x46d4648) 003b:trace:gdiplus:GdipGetImageBounds 0x46bb458 0x33daf4 0x33da6c 003b:trace:gdiplus:GdipGetImageBounds returning (0.000000, 0.000000) (1440.000000, 1080.000000) unit type 2 003b:trace:gdiplus:GdipCloneRegion 0x46d4648 0x33db1c 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000028) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=046d46c8 ret=7e1eb39a 003b:trace:gdiplus:GdipClonePath (0x46d4678, 0x46d46dc) 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000018) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=046d46f8 ret=7e1eb39a 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000000) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=046d4718 ret=7e1eb39a 003b:Call ntdll.RtlAllocateHeap(00110000,00000008,00000000) ret=7e1eb39a 003b:Ret ntdll.RtlAllocateHeap() retval=0465fa98 ret=7e1eb39a 003b:fixme:gdiplus:SOFTWARE_GdipFillRegion ***1 stat=0 003b:trace:gdiplus:GdipSetMatrixElements (0x33db04, 1.00, 0.00, 0.00, 1.00, 0.00, 0.00) 003b:trace:gdiplus:GdipMultiplyMatrix (0x33db04, 0x46bb518, 1) 003b:trace:gdiplus:GdipScaleMatrix (0x33db04, 1.00, 1.00, 1) 003b:fixme:gdiplus:SOFTWARE_GdipFillRegion ***2 stat=0 003b:trace:gdiplus:GdipTransformRegion (0x46d46c8, 0x33db04) 003b:trace:gdiplus:GdipTransformMatrixPoints (0x33db04, 0x46d4718, 0) 003b:fixme:gdiplus:transform_region_element *** RegionDataPath stat=2 003b:fixme:gdiplus:SOFTWARE_GdipFillRegion ***3 stat=2 003b:trace:gdiplus:GdipDeleteRegion 0x46d46c8 003b:trace:gdiplus:GdipDeletePath (0x46d46f8) ... 003b:trace:gdiplus:GdipDeleteRegion 0x46d4648 003b:trace:gdiplus:GdipDeletePath (0x46d4678) ... 003b:Ret gdiplus.GdipFillPath() retval=00000002 ret=03876f7c --- snip ---
The problem happens appears in GdipFillPath() -> SOFTWARE_GdipFillPath() -> GdipFillRegion() SOFTWARE_GdipFillRegion() -> GdipTransformRegion() -> transform_region_element(RegionDataPath) -> GdipTransformMatrixPoints()
"element->elementdata.pathdata.path->pathdata.Count" is zero at that point.
'winetricks gdiplus' prevents the crash and other (non fatal) graphics artifacts (see splash screen for example).
Regards
http://bugs.winehq.org/show_bug.cgi?id=34571
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet, download URL| |http://www.easyslides.com/f | |iles/software/EasiSlidesSet | |up4_405.msi
--- Comment #1 from Anastasius Focht focht@gmx.net 2013-09-22 06:51:43 CDT --- Hello folks,
filling fields ...
$ du -sh EasiSlidesSetup4_405.msi 3.9M EasiSlidesSetup4_405.msi
$ sha1sum EasiSlidesSetup4_405.msi 74ea1d962cb82e1f59a13129f9747fc46d0f62f1 EasiSlidesSetup4_405.msi
$ wine --version wine-1.7.2-206-gdb28efb
Regards
http://bugs.winehq.org/show_bug.cgi?id=34571
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |ec9a0d85705941e024c366a2f74 | |0a5f9e3d1419f Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #2 from Anastasius Focht focht@gmx.net 2013-09-24 16:24:43 CDT --- Hello folks,
this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/ec9a0d85705941e024c366a2f74...
Thanks Dmitry.
Regards
http://bugs.winehq.org/show_bug.cgi?id=34571
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alexandre Julliard julliard@winehq.org 2013-09-27 13:40:59 CDT --- Closing bugs fixed in 1.7.3.
http://bugs.winehq.org/show_bug.cgi?id=34571
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.6.x
http://bugs.winehq.org/show_bug.cgi?id=34571
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.6.x |---
--- Comment #4 from Alexandre Julliard julliard@winehq.org 2013-11-15 13:39:50 CST --- Removing 1.6.x milestone from bugs included in 1.6.1.
https://bugs.winehq.org/show_bug.cgi?id=34571
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.easyslides.com/f |https://web.archive.org/web |iles/software/EasiSlidesSet |/20130821010345/http://www. |up4_405.msi |easyslides.com/files/softwa | |re/EasiSlidesSetup4_405.msi