All pastes #1173629 Raw Edit

Anonymous

public text v1 · immutable
#1173629 ·published 2008-08-16 00:03 UTC
rendered paste body
Index: DependencyObject.cs
===================================================================
--- DependencyObject.cs	(revision 109778)
+++ DependencyObject.cs	(revision 109777)
@@ -399,18 +399,16 @@
 				case Kind.DOUBLE_ARRAY: {
 					UnmanagedArray *array = (UnmanagedArray*)val->u.p;
 					double [] values = new double [array->count];
-					fixed (double* first_d = &array->first_d) {
-						Marshal.Copy ((IntPtr)first_d, values, 0, array->count);
-					}
+					Marshal.Copy ((IntPtr) (&array->first_d), values, 0, array->count);
 					return values;
 				}
 					
 				case Kind.POINT_ARRAY: {
 					UnmanagedArray *array = (UnmanagedArray*)val->u.p;
 					Point [] values = new Point [array->count];
-					fixed (UnmanagedPoint *first = &array->first_pnt) {
-						for (int i = 0; i < array->count; i++)
-							values [i] = new Point (first [i].x, first[i].y);
+					Point* first = (Point*) &array->first_pnt;
+					for (int i = 0; i < array->count; i++) {
+						values [i] = first [i];
 					}
 					return values;
 				}
@@ -554,9 +552,7 @@
 					UnmanagedArray* array = (UnmanagedArray*) value.u.p;
 					array->count = dv.Length;
 					array->refcount = 1;
-					fixed (double* first_d = &array->first_d) {
-						Marshal.Copy (dv, 0, (IntPtr) first_d, array->count);
-					}
+					Marshal.Copy (dv, 0, (IntPtr) (&array->first_d), array->count);
 				}
 				else if (v is Point []) {
 					Point [] dv = (Point []) v;
@@ -566,13 +562,9 @@
 					UnmanagedArray* array = (UnmanagedArray*) value.u.p;
 					array->count = dv.Length;
 					array->refcount = 1;
-					fixed (UnmanagedPoint *dp = &array->first_pnt) {
-						for (int i = 0; i < dv.Length; i++) {
-							dp [i] = new UnmanagedPoint ();
-							dp [i].x = dv [i].X;
-							dp [i].y = dv [i].Y;
-						}
-					}
+					Point * dp = (Point*) &array->first_pnt;
+					for (int i = 0; i < dv.Length; i++)
+						dp [i] = dv [i];
 					
 				}
 				else if (v is Rect) {