[Mono-bugs] [Bug 76907][Nor] Changed - System.Drawing.DrawCurve with numberOfSegments problem

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Dec 6 04:28:22 EST 2005

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 duncan at ximian.com.


--- shadow/76907	2005-12-04 21:01:04.000000000 -0500
+++ shadow/76907.tmp.7410	2005-12-06 04:28:22.000000000 -0500
@@ -1,14 +1,14 @@
 Bug#: 76907
 Product: Mono: Class Libraries
 Version: 1.1
 OS: other
 OS Details: SuSE Linux 10.0 and Windows XP Pro
-Status: NEW   
+Status: ASSIGNED   
+Severity: Unknown
 Priority: Normal
 Component: Sys.Drawing.
 AssignedTo: duncan at ximian.com                            
 ReportedBy: contact at i-nz.net               
 QAContact: mono-bugs at ximian.com
 TargetMilestone: ---
@@ -83,6 +83,33 @@
 ------- Additional Comments From contact at i-nz.net  2005-12-04 21:01 -------
 Created an attachment (id=16165)
 My Patch
+------- Additional Comments From duncan at ximian.com  2005-12-06 04:28 -------
+We talked about this on IRC already, but the patch is incorrect
+because the change happened in System.Drawing (Graphics.cs), instead
+of libgdiplus (graphics.c).
+I'm uploading the current iteration of my patch. I will need to test
+it a little more before I'm comfortable committing it. In particular,
+the results of DrawClosedCurve looks wrong (but I think they're wrong
+in the existing code as well); in addition, I need to double-check the
+code in GraphicsPath to make sure they're in sync with Graphics.
+Preliminary ChangeLog:
+2005-12-06  Duncan Mak	<duncan at novell.com>
+	* graphics.c (make_curve): Add new argument 'offset' to
+	account for starting at a user-specified point. (Also
+	renamed 'count' to 'length').
+	(GdipDrawCurve3): Assert that: 1) offset + numOfSegments must
+	never be greater than the number of points ('count').
+	2) numOfSegments must be at least 1.
+	3) draw only when there are at least 3 points.
+	* graphics.c
+	* graphics.h (GdipDrawCurve3, GdipFillClosedCurve2): Fixed
+	signature, numOfSegments should be int, not float.

More information about the mono-bugs mailing list