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

Reply via email to