[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnetlib ChangeLog System.Drawing/Drawing2D/Grap...
From: |
Heiko Weiss |
Subject: |
[dotgnu-pnet-commits] pnetlib ChangeLog System.Drawing/Drawing2D/Grap... |
Date: |
Fri, 16 Mar 2007 07:14:18 +0000 |
CVSROOT: /sources/dotgnu-pnet
Module name: pnetlib
Changes by: Heiko Weiss <brubbel> 07/03/16 07:14:18
Modified files:
. : ChangeLog
System.Drawing/Drawing2D: GraphicsPath.cs
runtime/System/Runtime/Serialization/Formatters/Binary:
BinaryValueReader.cs
Log message:
GraphicsPath : fixed calculation ellipse and pie
BinaryValueReader: optimized performance reading byte arrays, factor
500!
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnetlib/ChangeLog?cvsroot=dotgnu-pnet&r1=1.2485&r2=1.2486
http://cvs.savannah.gnu.org/viewcvs/pnetlib/System.Drawing/Drawing2D/GraphicsPath.cs?cvsroot=dotgnu-pnet&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/pnetlib/runtime/System/Runtime/Serialization/Formatters/Binary/BinaryValueReader.cs?cvsroot=dotgnu-pnet&r1=1.6&r2=1.7
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/pnetlib/ChangeLog,v
retrieving revision 1.2485
retrieving revision 1.2486
diff -u -b -r1.2485 -r1.2486
--- ChangeLog 9 Mar 2007 17:10:13 -0000 1.2485
+++ ChangeLog 16 Mar 2007 07:14:17 -0000 1.2486
@@ -1,3 +1,14 @@
+2007-03-15 Heiko Weiss <address@hidden>
+
+ *
runtime/System/Runtime/Serialization/Formatters/Binary/BinaryValueReader.cs:
+ optimized performance in ReadPrimitiveTypeArray by reading
+ arrays once instead of reading it for each object.
+
+2007-03-12 Heiko Weiss <address@hidden>
+
+ * System.Drawing/Drawing2D/GraphicsPath.cs: fixed calculation
+ ellipse and pie.
+
2007-03-09 Radek Polak <address@hidden>
* runtime/System/Private/DebuggerHelper.cs: Managed helper class for
Index: System.Drawing/Drawing2D/GraphicsPath.cs
===================================================================
RCS file:
/sources/dotgnu-pnet/pnetlib/System.Drawing/Drawing2D/GraphicsPath.cs,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- System.Drawing/Drawing2D/GraphicsPath.cs 25 Jan 2007 20:08:51 -0000
1.9
+++ System.Drawing/Drawing2D/GraphicsPath.cs 16 Mar 2007 07:14:17 -0000
1.10
@@ -1097,6 +1097,7 @@
}; // class PathObject
+
// Arc path objects.
private sealed class ArcPathObject : PathObject
{
@@ -1137,14 +1138,14 @@
double rx = this.width/2;
double ry = this.height/2;
for( int i = 0; i < iCount-1; i++ ) {
- px = rx*( 1 + DegCosinus( dStart ) ) + this.x+1;
- py = ry*( 1 + DegSinus ( dStart ) ) + this.y+1;
+ px = rx*( 1 + DegCosinus( dStart ) ) + this.x;
+ py = ry*( 1 + DegSinus ( dStart ) ) + this.y;
points[i] = new PointF( (float)px,(float)py );
if( i == 0 ) startPoint = points[i];
dStart += dDelta;
}
- px = rx*( 1 + DegCosinus( dEnd ) ) + this.x+1;
- py = ry*( 1 + DegSinus ( dEnd ) ) + this.y+1;
+ px = rx*( 1 + DegCosinus( dEnd ) ) + this.x;
+ py = ry*( 1 + DegSinus ( dEnd ) ) + this.y;
points[iCount-1] = new PointF( (float)px,(float)py );
endPoint = points[iCount-1];
return points;
@@ -1504,13 +1505,13 @@
double ry = this.height/2;
points[0] = new PointF(
(float)(this.x+rx),(float)(this.y+ry) );
for( int i = 1; i < iCount; i++ ) {
- xP = rx*( 1 + DegCosinus( dStart ) ) + this.x+1;
- yP = ry*( 1 + DegSinus ( dStart ) ) + this.y+1;
+ xP = rx*( 1 + DegCosinus( dStart ) ) + this.x;
+ yP = ry*( 1 + DegSinus ( dStart ) ) + this.y;
points[i] = new PointF( (float)xP,(float)yP );
dStart += dDelta;
}
- xP = rx*( 1 + DegCosinus( dEnd ) ) + this.x+1;
- yP = ry*( 1 + DegSinus ( dEnd ) ) + this.y+1;
+ xP = rx*( 1 + DegCosinus( dEnd ) ) + this.x;
+ yP = ry*( 1 + DegSinus ( dEnd ) ) + this.y;
points[iCount] = new PointF( (float)xP,(float)yP );
points[iCount+1] = points[0];
return points;
Index:
runtime/System/Runtime/Serialization/Formatters/Binary/BinaryValueReader.cs
===================================================================
RCS file:
/sources/dotgnu-pnet/pnetlib/runtime/System/Runtime/Serialization/Formatters/Binary/BinaryValueReader.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- runtime/System/Runtime/Serialization/Formatters/Binary/BinaryValueReader.cs
21 Nov 2005 06:51:21 -0000 1.6
+++ runtime/System/Runtime/Serialization/Formatters/Binary/BinaryValueReader.cs
16 Mar 2007 07:14:18 -0000 1.7
@@ -518,123 +518,116 @@
}
}
- public static void ReadPrimitiveTypeArray(DeserializationContext
context, BinaryPrimitiveTypeCode typeCode, Array array)
+ internal static Array ReadPrimitiveTypeArray(DeserializationContext
context, BinaryPrimitiveTypeCode typeCode, int count )
{
- int count = array.GetLength(0);
switch(typeCode)
{
case BinaryPrimitiveTypeCode.Boolean:
- bool[] boolArray = (bool[]) array;
+ bool[] boolArray = new bool[count];
for(int i = 0; i < count; i++) {
boolArray[i] =
context.Reader.ReadBoolean();
}
- break;
+ return boolArray;
case BinaryPrimitiveTypeCode.Byte:
- byte[] byteArray = (byte[]) array;
- for(int i = 0; i < count; i++) {
- byteArray[i] =
context.Reader.ReadByte();
- }
- break;
+ byte[] byteArray =
context.Reader.ReadBytes(count);
+ return byteArray;
case BinaryPrimitiveTypeCode.Char:
- char[] charArray = (char[]) array;
- for(int i = 0; i < count; i++) {
- charArray[i] =
context.Reader.ReadChar();
- }
- break;
+ char[] charArray =
context.Reader.ReadChars(count);
+ return charArray;
case BinaryPrimitiveTypeCode.Decimal:
- decimal[] decimalArray = (decimal[]) array;
+ decimal[] decimalArray = new decimal[count];
for(int i = 0; i < count; i++) {
decimalArray[i] =
Decimal.Parse(context.Reader.ReadString());
}
- break;
+ return decimalArray;
case BinaryPrimitiveTypeCode.Double:
- double[] doubleArray = (double[]) array;
+ double[] doubleArray = new double[count];
for(int i = 0; i < count; i++) {
doubleArray[i] =
context.Reader.ReadDouble();
}
- break;
+ return doubleArray;
case BinaryPrimitiveTypeCode.Int16:
- short[] shortArray = (short[]) array;
+ short[] shortArray = new short[count];
for(int i = 0; i < count; i++) {
shortArray[i] =
context.Reader.ReadInt16();
}
- break;
+ return shortArray;
case BinaryPrimitiveTypeCode.Int32:
- int[] intArray = (int[]) array;
+ int[] intArray = new int[count];
for(int i = 0; i < count; i++) {
intArray[i] =
context.Reader.ReadInt32();
}
- break;
+ return intArray;
case BinaryPrimitiveTypeCode.Int64:
- long[] longArray = (long[]) array;
+ long[] longArray = new long[count];
for(int i = 0; i < count; i++) {
longArray[i] =
context.Reader.ReadInt64();
}
- break;
+ return longArray;
case BinaryPrimitiveTypeCode.SByte:
- sbyte[] sbyteArray = (sbyte[]) array;
+ sbyte[] sbyteArray = new sbyte[count];
for(int i = 0; i < count; i++) {
sbyteArray[i] =
context.Reader.ReadSByte();
}
- break;
+ return sbyteArray;
case BinaryPrimitiveTypeCode.Single:
- float[] singleArray = (float[]) array;
+ float[] singleArray = new float[count];
for(int i = 0; i < count; i++) {
singleArray[i] =
context.Reader.ReadChar();
}
- break;
+ return singleArray;
case BinaryPrimitiveTypeCode.TimeSpan:
- TimeSpan[] tsArray = (TimeSpan[]) array;
+ TimeSpan[] tsArray = new TimeSpan[count];
for(int i = 0; i < count; i++) {
tsArray[i] = new
TimeSpan(context.Reader.ReadInt64());
}
- break;
+ return tsArray;
case BinaryPrimitiveTypeCode.DateTime:
- DateTime[] dtArray = (DateTime[]) array;
+ DateTime[] dtArray = new DateTime[count];
for(int i = 0; i < count; i++) {
dtArray[i] = new
DateTime(context.Reader.ReadInt64());
}
- break;
+ return dtArray;
case BinaryPrimitiveTypeCode.UInt16:
- ushort[] ushortArray = (ushort[]) array;
+ ushort[] ushortArray = new ushort[count];
for(int i = 0; i < count; i++) {
ushortArray[i] =
context.Reader.ReadUInt16();
}
- break;
+ return ushortArray;
case BinaryPrimitiveTypeCode.UInt32:
- uint[] uintArray = (uint[]) array;
+ uint[] uintArray = new uint[count];
for(int i = 0; i < count; i++) {
uintArray[i] =
context.Reader.ReadUInt32();
}
- break;
+ return uintArray;
case BinaryPrimitiveTypeCode.UInt64:
- ulong[] ulongArray = (ulong[]) array;
+ ulong[] ulongArray = new ulong[count];
for(int i = 0; i < count; i++) {
ulongArray[i] =
context.Reader.ReadUInt64();
}
- break;
+ return ulongArray;
case BinaryPrimitiveTypeCode.String:
- string[] stringArray = (string[]) array;
+ string[] stringArray = new string[count];
for(int i = 0; i < count; i++) {
stringArray[i] =
context.Reader.ReadString();
}
- break;
+ return stringArray;
default:
throw new SerializationException("unknown
primitive type code:"+typeCode);
@@ -852,20 +845,18 @@
{
bool ret = true;
- Type convertedType;
Array array;
if(type is BinaryPrimitiveTypeCode)
{
// this is a primitive array
- convertedType =
GetPrimitiveType((BinaryPrimitiveTypeCode) type);
- array = Array.CreateInstance(convertedType, (int)
count);
- ReadPrimitiveTypeArray(context,
(BinaryPrimitiveTypeCode) type, array);
+ array = ReadPrimitiveTypeArray(context,
(BinaryPrimitiveTypeCode) type, (int) count);
+
}
else if(type is Type)
{
// this is an object array
- convertedType = (Type) type;
+ Type convertedType = (Type) type;
array = Array.CreateInstance(convertedType, (int)
count);
for(int i = 0; i < count; i++)
{