Author: jbevain
Date: 2008-02-16 16:44:53 -0500 (Sat, 16 Feb 2008)
New Revision: 95929
Modified:
trunk/mcs/class/Mono.Cecil/ChangeLog
trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowReader.cs
trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowWriter.cs
trunk/mcs/class/Mono.Cecil/CodeGen/templates/Utilities.cs
trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowReader.cs
trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowWriter.cs
trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/Utilities.cs
Log:
2008-02-16 Jb Evain <[EMAIL PROTECTED]>
* CodeGen/templates/MetadataRowReader.cs
CodeGen/templates/Utilities.cs
CodeGen/templates/MetadataRowWriter.cs
Mono.Cecil.Metadata/MetadataRowReader.cs
Mono.Cecil.Metadata/MetadataRowWriter.cs
Mono.Cecil.Metadata/Utilities.cs:
Use a good old traditional array instead of an
Hashtable. Based on a patch by Carlo Kok <[EMAIL PROTECTED]>.
Modified: trunk/mcs/class/Mono.Cecil/ChangeLog
===================================================================
--- trunk/mcs/class/Mono.Cecil/ChangeLog 2008-02-16 21:11:59 UTC (rev
95928)
+++ trunk/mcs/class/Mono.Cecil/ChangeLog 2008-02-16 21:44:53 UTC (rev
95929)
@@ -1,3 +1,14 @@
+2008-02-16 Jb Evain <[EMAIL PROTECTED]>
+
+ * CodeGen/templates/MetadataRowReader.cs
+ CodeGen/templates/Utilities.cs
+ CodeGen/templates/MetadataRowWriter.cs
+ Mono.Cecil.Metadata/MetadataRowReader.cs
+ Mono.Cecil.Metadata/MetadataRowWriter.cs
+ Mono.Cecil.Metadata/Utilities.cs:
+ Use a good old traditional array instead of an
+ Hashtable. Based on a patch by Carlo Kok <[EMAIL PROTECTED]>.
+
2008-02-07 Jb Evain <[EMAIL PROTECTED]>
* Mono.Cecil/BaseAssemblyResolver.cs:
Modified: trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowReader.cs
===================================================================
--- trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowReader.cs
2008-02-16 21:11:59 UTC (rev 95928)
+++ trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowReader.cs
2008-02-16 21:44:53 UTC (rev 95929)
@@ -42,7 +42,7 @@
MetadataTableReader m_mtrv;
BinaryReader m_binaryReader;
MetadataRoot m_metadataRoot;
- IDictionary m_ciCache;
+ int [] m_ciCache;
int m_blobHeapIdxSz;
int m_stringsHeapIdxSz;
@@ -53,7 +53,7 @@
m_mtrv = mtrv;
m_binaryReader = mtrv.GetReader ();
m_metadataRoot = mtrv.GetMetadataRoot ();
- m_ciCache = new Hashtable ();
+ m_ciCache = new int [<%= $coded_indexes.length %>];
}
int GetIndexSize (int rid)
Modified: trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowWriter.cs
===================================================================
--- trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowWriter.cs
2008-02-16 21:11:59 UTC (rev 95928)
+++ trunk/mcs/class/Mono.Cecil/CodeGen/templates/MetadataRowWriter.cs
2008-02-16 21:44:53 UTC (rev 95929)
@@ -40,7 +40,7 @@
MetadataRoot m_root;
MemoryBinaryWriter m_binaryWriter;
- IDictionary m_ciCache;
+ int [] m_ciCache;
int m_blobHeapIdxSz;
int m_stringsHeapIdxSz;
@@ -50,7 +50,7 @@
{
m_binaryWriter = mtwv.GetWriter ();
m_root = mtwv.GetMetadataRoot ();
- m_ciCache = new Hashtable ();
+ m_ciCache = new int [<%= $coded_indexes.length %>];
}
void WriteBlobPointer (uint pointer)
Modified: trunk/mcs/class/Mono.Cecil/CodeGen/templates/Utilities.cs
===================================================================
--- trunk/mcs/class/Mono.Cecil/CodeGen/templates/Utilities.cs 2008-02-16
21:11:59 UTC (rev 95928)
+++ trunk/mcs/class/Mono.Cecil/CodeGen/templates/Utilities.cs 2008-02-16
21:44:53 UTC (rev 95929)
@@ -178,11 +178,11 @@
internal delegate int TableRowCounter (int rid);
- internal static int GetCodedIndexSize (CodedIndex ci,
TableRowCounter rowCounter, IDictionary codedIndexCache)
+ internal static int GetCodedIndexSize (CodedIndex ci,
TableRowCounter rowCounter, int [] codedIndexCache)
{
- int bits = 0, max = 0;
- if (codedIndexCache [ci] != null)
- return (int) codedIndexCache [ci];
+ int bits = 0, max = 0, index = (int) ci;
+ if (codedIndexCache [index] != 0)
+ return codedIndexCache [index];
int res = 0;
int [] rids;
@@ -204,7 +204,7 @@
}
res = max < (1 << (16 - bits)) ? 2 : 4;
- codedIndexCache [ci] = res;
+ codedIndexCache [index] = res;
return res;
}
}
Modified: trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowReader.cs
===================================================================
--- trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowReader.cs
2008-02-16 21:11:59 UTC (rev 95928)
+++ trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowReader.cs
2008-02-16 21:44:53 UTC (rev 95929)
@@ -5,7 +5,7 @@
// Jb Evain ([EMAIL PROTECTED])
//
// Generated by /CodeGen/cecil-gen.rb do not edit
-// Tue Jul 17 00:22:32 +0200 2007
+// Sat Feb 16 23:24:17 +0100 2008
//
// (C) 2005 Jb Evain
//
@@ -42,7 +42,7 @@
MetadataTableReader m_mtrv;
BinaryReader m_binaryReader;
MetadataRoot m_metadataRoot;
- IDictionary m_ciCache;
+ int [] m_ciCache;
int m_blobHeapIdxSz;
int m_stringsHeapIdxSz;
@@ -53,7 +53,7 @@
m_mtrv = mtrv;
m_binaryReader = mtrv.GetReader ();
m_metadataRoot = mtrv.GetMetadataRoot ();
- m_ciCache = new Hashtable ();
+ m_ciCache = new int [13];
}
int GetIndexSize (int rid)
Modified: trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowWriter.cs
===================================================================
--- trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowWriter.cs
2008-02-16 21:11:59 UTC (rev 95928)
+++ trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/MetadataRowWriter.cs
2008-02-16 21:44:53 UTC (rev 95929)
@@ -5,7 +5,7 @@
// Jb Evain ([EMAIL PROTECTED])
//
// Generated by /CodeGen/cecil-gen.rb do not edit
-// Thu Feb 22 14:39:38 CET 2007
+// Sat Feb 16 23:24:17 +0100 2008
//
// (C) 2005 Jb Evain
//
@@ -40,7 +40,7 @@
MetadataRoot m_root;
MemoryBinaryWriter m_binaryWriter;
- IDictionary m_ciCache;
+ int [] m_ciCache;
int m_blobHeapIdxSz;
int m_stringsHeapIdxSz;
@@ -50,7 +50,7 @@
{
m_binaryWriter = mtwv.GetWriter ();
m_root = mtwv.GetMetadataRoot ();
- m_ciCache = new Hashtable ();
+ m_ciCache = new int [13];
}
void WriteBlobPointer (uint pointer)
Modified: trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/Utilities.cs
===================================================================
--- trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/Utilities.cs 2008-02-16
21:11:59 UTC (rev 95928)
+++ trunk/mcs/class/Mono.Cecil/Mono.Cecil.Metadata/Utilities.cs 2008-02-16
21:44:53 UTC (rev 95929)
@@ -5,7 +5,7 @@
// Jb Evain ([EMAIL PROTECTED])
//
// Generated by /CodeGen/cecil-gen.rb do not edit
-// Tue Jul 17 00:22:33 +0200 2007
+// Sat Feb 16 23:23:29 +0100 2008
//
// (C) 2005 Jb Evain
//
@@ -514,11 +514,11 @@
internal delegate int TableRowCounter (int rid);
- internal static int GetCodedIndexSize (CodedIndex ci,
TableRowCounter rowCounter, IDictionary codedIndexCache)
+ internal static int GetCodedIndexSize (CodedIndex ci,
TableRowCounter rowCounter, int [] codedIndexCache)
{
- int bits = 0, max = 0;
- if (codedIndexCache [ci] != null)
- return (int) codedIndexCache [ci];
+ int bits = 0, max = 0, index = (int) ci;
+ if (codedIndexCache [index] != 0)
+ return codedIndexCache [index];
int res = 0;
int [] rids;
@@ -638,7 +638,7 @@
}
res = max < (1 << (16 - bits)) ? 2 : 4;
- codedIndexCache [ci] = res;
+ codedIndexCache [index] = res;
return res;
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches