[Mono-bugs] [Bug 80316][Maj] Changed - Graphics.TranslateTransform generating exception (instance disposed)

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Dec 19 13:55:01 EST 2006


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by sebastien at ximian.com.

http://bugzilla.ximian.com/show_bug.cgi?id=80316

--- shadow/80316	2006-12-19 12:25:57.000000000 -0500
+++ shadow/80316.tmp.17133	2006-12-19 13:55:01.000000000 -0500
@@ -1,23 +1,23 @@
 Bug#: 80316
 Product: Mono: Class Libraries
 Version: 1.2
-OS: Windows XP
-OS Details: XP, SP2
+OS: All
+OS Details: 
 Status: NEW   
 Resolution: 
-Severity: 
+Severity: Unknown
 Priority: Major
-Component: Sys.Drawing.
+Component: Windows.Forms
 AssignedTo: mono-bugs at ximian.com                            
 ReportedBy: bcarson at asgoth.com               
 QAContact: mono-bugs at ximian.com
 TargetMilestone: ---
 URL: 
 Cc: 
-Summary: Graphics.TranslateTransform generating exception
+Summary: Graphics.TranslateTransform generating exception (instance disposed)
 
 Description of Problem:
 The attached sample executes correctly in .NET, but generates the 
 following stack trace in Mono:
 
 Unhandled Exception: System.ArgumentException: Invalid Parameter. A null 
@@ -91,6 +91,62 @@
 <see attached ZIP file>
 
 ------- Additional Comments From bcarson at asgoth.com  2006-12-19 12:25 -------
 Created an attachment (id=18341)
 Sample application (source and executable) in ZIP format
 
+
+------- Additional Comments From sebastien at ximian.com  2006-12-19 13:55 -------
+This also occurs under Linux (and probably any OS). Libgdiplus is
+getting called with a NULL graphic instance (so the exception itself
+is correct). This is (most probably) because the instance has been
+disposed (and the handle nulled).
+
+Moving to SWF.
+
+mono --trace=M:System.Drawing.GDIPlus:GdipTranslateWorldTransform
+RoundedButton.exe
+EXCEPTION handling: FileNotFoundException
+EXCEPTION handling: FileNotFoundException
+EXCEPTION handling: FileNotFoundException
+ENTER: (wrapper managed-to-native)
+System.Drawing.GDIPlus:GdipTranslateWorldTransform
+(intptr,single,single,System.Drawing.Drawing2D.MatrixOrder)(0x85f10d8,
+-60.000000, -140.000000, 0, )
+LEAVE: (wrapper managed-to-native)
+System.Drawing.GDIPlus:GdipTranslateWorldTransform
+(intptr,single,single,System.Drawing.Drawing2D.MatrixOrder)result=0
+ENTER: (wrapper managed-to-native)
+System.Drawing.GDIPlus:GdipTranslateWorldTransform
+(intptr,single,single,System.Drawing.Drawing2D.MatrixOrder)((nil),
+60.000000, 140.000000, 1, )
+LEAVE: (wrapper managed-to-native)
+System.Drawing.GDIPlus:GdipTranslateWorldTransform
+(intptr,single,single,System.Drawing.Drawing2D.MatrixOrder)result=2
+EXCEPTION handling: ArgumentException
+System.ArgumentException: Invalid Parameter. A null reference or
+invalid value was found.
+  at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000]
+  at System.Drawing.Graphics.TranslateTransform (Single dx, Single dy,
+MatrixOrder order) [0x00000]
+  at (wrapper remoting-invoke-with-check)
+System.Drawing.Graphics:TranslateTransform
+(single,single,System.Drawing.Drawing2D.MatrixOrder)
+  at RoundedButton.RoundedButton.PaintParentBackground
+(System.Windows.Forms.PaintEventArgs e) [0x00000]
+  at RoundedButton.RoundedButton.OnPaint
+(System.Windows.Forms.PaintEventArgs pe) [0x00000]
+  at System.Windows.Forms.Control.WndProc
+(System.Windows.Forms.Message& m) [0x00000]
+  at System.Windows.Forms.ButtonBase.WndProc
+(System.Windows.Forms.Message& m) [0x00000]
+  at System.Windows.Forms.Button.WndProc
+(System.Windows.Forms.Message& m) [0x00000]
+  at System.Windows.Forms.Control+ControlNativeWindow.WndProc
+(System.Windows.Forms.Message& m) [0x00000]
+  at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg,
+IntPtr wParam, IntPtr lParam) [0x00000]
+
+
+Note: IIRC (it's been a while) Fx 2.0 has a different dispose strategy
+in PaintEventArgs (I think I did some unit tests for that). Not sure
+if that has been "implemented" in MWF.


More information about the mono-bugs mailing list