[Bug 34571] New: EasiSlides v4 crashes when clicking a folder listbox item (GdipFillPath failure)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Sep 22 06:50:24 CDT 2013


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 at winehq.org
        ReportedBy: focht at 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

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list