[Bug 31032] New: Ragnarok download manager shows a .NET exception on start (GdipLoadImageFromStream stream clone fails)

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Jun 26 17:11:42 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=31032

             Bug #: 31032
           Summary: Ragnarok download manager shows a .NET exception on
                    start (GdipLoadImageFromStream stream clone fails)
           Product: Wine
           Version: 1.5.7
          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,

bug 30987 talks about a problem with builtin gdiplus and Mono.
Actually with .NET Framework 2.0 it fails too.

The issue (regression) is:

http://source.winehq.org/git/wine.git/commitdiff/9e12bc0175f6a65ee45ebce1ca519eac6f5ca501

(gdiplus: Create a copy of the source stream when loading an image.)

Mono still suffered after partial revert so these might not be related hence I
made an extra one.

With MS .NET 2.0 there is a managed backtrace shown in console.

--- snip ---
Unhandled Exception: System.ArgumentException: Parameter is not valid.
   at System.Drawing.Image.get_FrameDimensionsList()
   at System.Drawing.ImageAnimator.CanAnimate(Image image)
   at System.Drawing.ImageAnimator.ImageInfo..ctor(Image image)
   at System.Drawing.ImageAnimator.Animate(Image image, EventHandler
onFrameChangedHandler)
   at System.Windows.Forms.ButtonBase.Animate(Boolean animate)
   at System.Windows.Forms.ButtonBase.Animate()
   at System.Windows.Forms.ButtonBase.set_Image(Image value)
   at FilesDownloader.MainForm.InitializeComponent()
   at FilesDownloader.MainForm..ctor()
   at FilesDownloader.Program.Main()
--- snip ---

Actually it's the result of problem happening earlier.
Using a managed debugger this backtrace is more likely the culprit:

--- snip ---
(2a.2b): CLR exception - code e0434f4d (first chance)
...
OS Thread Id: 0x2b (0)
ESP       EIP     
0033e3d4 7b8394f7 [HelperMethodFrame: 0033e3d4] 
0033e478 7ae3a024 System.Drawing.Internal.GPStream.NotImplemented()
0033e480 7adfefa5 System.Drawing.Internal.GPStream.Clone()
0033e670 79f1ef33 [GCFrame: 0033e670] 
0033e7c8 79f1ef33 [ComMethodFrame: 0033e7c8] 
0033e918 79f1ef33 [NDirectMethodFrameSlim: 0033e918]
System.Drawing.SafeNativeMethods+Gdip.GdipLoadImageFromStream(IStream, IntPtr
ByRef)
0033e928 7ae088ab System.Drawing.Image.InitializeFromStream(System.IO.Stream)
0033e95c 7ae085a8
System.Drawing.Image..ctor(System.Runtime.Serialization.SerializationInfo,
System.Runtime.Serialization.StreamingContext)
0033e99c 7ae0a336
System.Drawing.Bitmap..ctor(System.Runtime.Serialization.SerializationInfo,
System.Runtime.Serialization.StreamingContext)
...
0033f034 794458a4 System.Resources.ResourceManager.GetObject(System.String,
System.Globalization.CultureInfo, Boolean)
0033f058 79445809 System.Resources.ResourceManager.GetObject(System.String)
0033f05c 02b7096f FilesDownloader.MainForm.InitializeComponent()
0033f2f0 02b70270 FilesDownloader.MainForm..ctor()
0033f300 02b70090 FilesDownloader.Program.Main()
--- snip ---

Trace log:

--- snip ---
002b:Call gdiplus.GdipLoadImageFromStream(038a0030,0032e944) ret=0036a110 
...
002b:Call KERNEL32.RaiseException(e0434f4d,00000001,00000001,0032e30c)
ret=79f97065
002b:trace:seh:raise_exception code=e0434f4d flags=1 addr=0x7b8394f7
ip=7b8394f7 tid=002b
002b:trace:seh:raise_exception  info[0]=80004001
002b:trace:seh:raise_exception  eax=7b826491 ebx=7b8b06b0 ecx=80004001
edx=0032e208 esi=0032e2ec edi=0032e260
002b:trace:seh:raise_exception  ebp=0032e248 esp=0032e1e4 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000287
002b:trace:seh:call_stack_handlers calling handler at 0x79f9a3c8 code=e0434f4d
flags=1
002b:trace:seh:call_stack_handlers handler at 0x79f9a3c8 returned 1
002b:trace:seh:call_stack_handlers calling handler at 0x7a3197d4 code=e0434f4d
flags=1 
...
002b:trace:gdiplus:GdipCreateStreamOnFile ((null), 2147483648, 0x32e7c8)
002b:Ret  gdiplus.GdipLoadImageFromStream() retval=00000002 ret=0036a110
--- snip ---

The commit can't be cleanly reverted but just restoring old behaviour in
GdipLoadImageFromStream() gets the app to work again.

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