WineHQ
Bug Tracking Database – Bug 34571

 Bugzilla

 

Last modified: 2021-07-18 03:04:23 UTC  

EasiSlides v4 crashes when clicking a folder listbox item (GdipFillPath failure)

Bug 34571 - EasiSlides v4 crashes when clicking a folder listbox item (GdipFillPath failure)
EasiSlides v4 crashes when clicking a folder listbox item (GdipFillPath failure)
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: gdiplus
1.7.2
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
https://web.archive.org/web/201308210...
: dotnet, download
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2013-09-22 06:50 UTC by Anastasius Focht
Modified: 2021-07-18 03:04 UTC (History)
0 users

See Also:
Regression SHA1:
Fixed by SHA1: ec9a0d85705941e024c366a2f740a5f9e3d1419f
Distribution: ---
Staged patchset:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anastasius Focht 2013-09-22 06:50:24 UTC
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
Comment 1 Anastasius Focht 2013-09-22 06:51:43 UTC
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
Comment 2 Anastasius Focht 2013-09-24 16:24:43 UTC
Hello folks,

this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/ec9a0d85705941e024c366a2f740a5f9e3d1419f

Thanks Dmitry.

Regards
Comment 3 Alexandre Julliard 2013-09-27 13:40:59 UTC
Closing bugs fixed in 1.7.3.
Comment 4 Alexandre Julliard 2013-11-15 13:39:50 UTC
Removing 1.6.x milestone from bugs included in 1.6.1.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers