Author: jbevain
Date: 2006-05-18 13:31:30 -0400 (Thu, 18 May 2006)
New Revision: 60830

Modified:
   trunk/cecil/lib/ChangeLog
   trunk/cecil/lib/CodeGen/templates/MetadataTableReader.cs
   trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs
   trunk/cecil/lib/Mono.Cecil.Metadata/TableCollection.cs
   trunk/cecil/lib/Mono.Cecil.Metadata/TablesHeap.cs
Log:
2006-05-18  Jb Evain  <[EMAIL PROTECTED]>

        * CodeGen/templates/MetadataTableReader.cs
          Mono.Cecil.Metadata/MetadataTableReader.cs
          Mono.Cecil.Metadata/TableCollection.cs
          Mono.Cecil.Metadata/TablesHeap.cs:
                Optimize a little bit.


Modified: trunk/cecil/lib/ChangeLog
===================================================================
--- trunk/cecil/lib/ChangeLog   2006-05-18 17:27:50 UTC (rev 60829)
+++ trunk/cecil/lib/ChangeLog   2006-05-18 17:31:30 UTC (rev 60830)
@@ -1,5 +1,11 @@
 2006-05-18  Jb Evain  <[EMAIL PROTECTED]>
 
+       * CodeGen/templates/MetadataTableReader.cs
+         Mono.Cecil.Metadata/MetadataTableReader.cs
+         Mono.Cecil.Metadata/TableCollection.cs
+         Mono.Cecil.Metadata/TablesHeap.cs:
+               Optimize a little bit.
+
        * CodeGen/templates/MetadataTableWriter.cs
          Mono.Cecil.Metadata/MetadataTableWriter.cs
          Mono.Cecil.Metadata/TableCollection.cs:

Modified: trunk/cecil/lib/CodeGen/templates/MetadataTableReader.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/MetadataTableReader.cs    2006-05-18 
17:27:50 UTC (rev 60829)
+++ trunk/cecil/lib/CodeGen/templates/MetadataTableReader.cs    2006-05-18 
17:31:30 UTC (rev 60830)
@@ -42,7 +42,7 @@
                MetadataRowReader m_mrrv;
                BinaryReader m_binaryReader;
 
-               public readonly IDictionary Rows = new Hashtable 
(<%=$tables.length%>);
+               public readonly int [] m_rows = new int 
[TablesHeap.MaxTableCount];
 
                public MetadataTableReader (MetadataReader mrv)
                {
@@ -68,17 +68,9 @@
                        return m_mrrv;
                }
 
-               void ReadNumberOfRows (int rid)
-               {
-                       this.Rows [rid] = m_binaryReader.ReadInt32 ();
-               }
-
                public int GetNumberOfRows (int rid)
                {
-                       object n = this.Rows [rid];
-                       if (n != null)
-                               return (int) n;
-                       return 0;
+                       return m_rows [rid];
                }
 <% $tables.each { |table|  %>
                public <%=table.table_name%> Get<%=table.table_name%> ()
@@ -90,13 +82,13 @@
                {
 <% $stables.each { |table|  %>                 if (m_heap.HasTable 
(<%=table.table_name%>.RId)) {
                                coll.Add (new <%=table.table_name%> ());
-                               ReadNumberOfRows (<%=table.table_name%>.RId);
+                               m_rows [<%=table.table_name%>.RId] = 
m_binaryReader.ReadInt32 ();
                        }
 <% } %>                }
 
 <% $tables.each { |table| %>           public override void 
Visit<%=table.table_name%> (<%=table.table_name%> table)
                {
-                       int number = GetNumberOfRows 
(<%=table.table_name%>.RId);
+                       int number = m_rows [<%=table.table_name%>.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new <%=table.row_name%> ());

Modified: trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs  2006-05-18 
17:27:50 UTC (rev 60829)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/MetadataTableReader.cs  2006-05-18 
17:31:30 UTC (rev 60830)
@@ -5,7 +5,7 @@
 //   Jb Evain ([EMAIL PROTECTED])
 //
 // Generated by /CodeGen/cecil-gen.rb do not edit
-// Thu May 18 16:26:37 CEST 2006
+// Thu May 18 19:26:17 CEST 2006
 //
 // (C) 2005 Jb Evain
 //
@@ -42,7 +42,7 @@
                MetadataRowReader m_mrrv;
                BinaryReader m_binaryReader;
 
-               public readonly IDictionary Rows = new Hashtable (38);
+               public readonly int [] m_rows = new int 
[TablesHeap.MaxTableCount];
 
                public MetadataTableReader (MetadataReader mrv)
                {
@@ -68,17 +68,9 @@
                        return m_mrrv;
                }
 
-               void ReadNumberOfRows (int rid)
-               {
-                       this.Rows [rid] = m_binaryReader.ReadInt32 ();
-               }
-
                public int GetNumberOfRows (int rid)
                {
-                       object n = this.Rows [rid];
-                       if (n != null)
-                               return (int) n;
-                       return 0;
+                       return m_rows [rid];
                }
 
                public AssemblyTable GetAssemblyTable ()
@@ -275,420 +267,420 @@
                {
                        if (m_heap.HasTable (ModuleTable.RId)) {
                                coll.Add (new ModuleTable ());
-                               ReadNumberOfRows (ModuleTable.RId);
+                               m_rows [ModuleTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (TypeRefTable.RId)) {
                                coll.Add (new TypeRefTable ());
-                               ReadNumberOfRows (TypeRefTable.RId);
+                               m_rows [TypeRefTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (TypeDefTable.RId)) {
                                coll.Add (new TypeDefTable ());
-                               ReadNumberOfRows (TypeDefTable.RId);
+                               m_rows [TypeDefTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (FieldTable.RId)) {
                                coll.Add (new FieldTable ());
-                               ReadNumberOfRows (FieldTable.RId);
+                               m_rows [FieldTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (MethodTable.RId)) {
                                coll.Add (new MethodTable ());
-                               ReadNumberOfRows (MethodTable.RId);
+                               m_rows [MethodTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (ParamTable.RId)) {
                                coll.Add (new ParamTable ());
-                               ReadNumberOfRows (ParamTable.RId);
+                               m_rows [ParamTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (InterfaceImplTable.RId)) {
                                coll.Add (new InterfaceImplTable ());
-                               ReadNumberOfRows (InterfaceImplTable.RId);
+                               m_rows [InterfaceImplTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (MemberRefTable.RId)) {
                                coll.Add (new MemberRefTable ());
-                               ReadNumberOfRows (MemberRefTable.RId);
+                               m_rows [MemberRefTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (ConstantTable.RId)) {
                                coll.Add (new ConstantTable ());
-                               ReadNumberOfRows (ConstantTable.RId);
+                               m_rows [ConstantTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (CustomAttributeTable.RId)) {
                                coll.Add (new CustomAttributeTable ());
-                               ReadNumberOfRows (CustomAttributeTable.RId);
+                               m_rows [CustomAttributeTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (FieldMarshalTable.RId)) {
                                coll.Add (new FieldMarshalTable ());
-                               ReadNumberOfRows (FieldMarshalTable.RId);
+                               m_rows [FieldMarshalTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (DeclSecurityTable.RId)) {
                                coll.Add (new DeclSecurityTable ());
-                               ReadNumberOfRows (DeclSecurityTable.RId);
+                               m_rows [DeclSecurityTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (ClassLayoutTable.RId)) {
                                coll.Add (new ClassLayoutTable ());
-                               ReadNumberOfRows (ClassLayoutTable.RId);
+                               m_rows [ClassLayoutTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (FieldLayoutTable.RId)) {
                                coll.Add (new FieldLayoutTable ());
-                               ReadNumberOfRows (FieldLayoutTable.RId);
+                               m_rows [FieldLayoutTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (StandAloneSigTable.RId)) {
                                coll.Add (new StandAloneSigTable ());
-                               ReadNumberOfRows (StandAloneSigTable.RId);
+                               m_rows [StandAloneSigTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (EventMapTable.RId)) {
                                coll.Add (new EventMapTable ());
-                               ReadNumberOfRows (EventMapTable.RId);
+                               m_rows [EventMapTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (EventTable.RId)) {
                                coll.Add (new EventTable ());
-                               ReadNumberOfRows (EventTable.RId);
+                               m_rows [EventTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (PropertyMapTable.RId)) {
                                coll.Add (new PropertyMapTable ());
-                               ReadNumberOfRows (PropertyMapTable.RId);
+                               m_rows [PropertyMapTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (PropertyTable.RId)) {
                                coll.Add (new PropertyTable ());
-                               ReadNumberOfRows (PropertyTable.RId);
+                               m_rows [PropertyTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (MethodSemanticsTable.RId)) {
                                coll.Add (new MethodSemanticsTable ());
-                               ReadNumberOfRows (MethodSemanticsTable.RId);
+                               m_rows [MethodSemanticsTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (MethodImplTable.RId)) {
                                coll.Add (new MethodImplTable ());
-                               ReadNumberOfRows (MethodImplTable.RId);
+                               m_rows [MethodImplTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (ModuleRefTable.RId)) {
                                coll.Add (new ModuleRefTable ());
-                               ReadNumberOfRows (ModuleRefTable.RId);
+                               m_rows [ModuleRefTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (TypeSpecTable.RId)) {
                                coll.Add (new TypeSpecTable ());
-                               ReadNumberOfRows (TypeSpecTable.RId);
+                               m_rows [TypeSpecTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (ImplMapTable.RId)) {
                                coll.Add (new ImplMapTable ());
-                               ReadNumberOfRows (ImplMapTable.RId);
+                               m_rows [ImplMapTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (FieldRVATable.RId)) {
                                coll.Add (new FieldRVATable ());
-                               ReadNumberOfRows (FieldRVATable.RId);
+                               m_rows [FieldRVATable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (AssemblyTable.RId)) {
                                coll.Add (new AssemblyTable ());
-                               ReadNumberOfRows (AssemblyTable.RId);
+                               m_rows [AssemblyTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (AssemblyProcessorTable.RId)) {
                                coll.Add (new AssemblyProcessorTable ());
-                               ReadNumberOfRows (AssemblyProcessorTable.RId);
+                               m_rows [AssemblyProcessorTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (AssemblyOSTable.RId)) {
                                coll.Add (new AssemblyOSTable ());
-                               ReadNumberOfRows (AssemblyOSTable.RId);
+                               m_rows [AssemblyOSTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (AssemblyRefTable.RId)) {
                                coll.Add (new AssemblyRefTable ());
-                               ReadNumberOfRows (AssemblyRefTable.RId);
+                               m_rows [AssemblyRefTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (AssemblyRefProcessorTable.RId)) {
                                coll.Add (new AssemblyRefProcessorTable ());
-                               ReadNumberOfRows 
(AssemblyRefProcessorTable.RId);
+                               m_rows [AssemblyRefProcessorTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (AssemblyRefOSTable.RId)) {
                                coll.Add (new AssemblyRefOSTable ());
-                               ReadNumberOfRows (AssemblyRefOSTable.RId);
+                               m_rows [AssemblyRefOSTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (FileTable.RId)) {
                                coll.Add (new FileTable ());
-                               ReadNumberOfRows (FileTable.RId);
+                               m_rows [FileTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (ExportedTypeTable.RId)) {
                                coll.Add (new ExportedTypeTable ());
-                               ReadNumberOfRows (ExportedTypeTable.RId);
+                               m_rows [ExportedTypeTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (ManifestResourceTable.RId)) {
                                coll.Add (new ManifestResourceTable ());
-                               ReadNumberOfRows (ManifestResourceTable.RId);
+                               m_rows [ManifestResourceTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (NestedClassTable.RId)) {
                                coll.Add (new NestedClassTable ());
-                               ReadNumberOfRows (NestedClassTable.RId);
+                               m_rows [NestedClassTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (GenericParamTable.RId)) {
                                coll.Add (new GenericParamTable ());
-                               ReadNumberOfRows (GenericParamTable.RId);
+                               m_rows [GenericParamTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (MethodSpecTable.RId)) {
                                coll.Add (new MethodSpecTable ());
-                               ReadNumberOfRows (MethodSpecTable.RId);
+                               m_rows [MethodSpecTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                        if (m_heap.HasTable (GenericParamConstraintTable.RId)) {
                                coll.Add (new GenericParamConstraintTable ());
-                               ReadNumberOfRows 
(GenericParamConstraintTable.RId);
+                               m_rows [GenericParamConstraintTable.RId] = 
m_binaryReader.ReadInt32 ();
                        }
                }
 
                public override void VisitAssemblyTable (AssemblyTable table)
                {
-                       int number = GetNumberOfRows (AssemblyTable.RId);
+                       int number = m_rows [AssemblyTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new AssemblyRow ());
                }
                public override void VisitAssemblyOSTable (AssemblyOSTable 
table)
                {
-                       int number = GetNumberOfRows (AssemblyOSTable.RId);
+                       int number = m_rows [AssemblyOSTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new AssemblyOSRow ());
                }
                public override void VisitAssemblyProcessorTable 
(AssemblyProcessorTable table)
                {
-                       int number = GetNumberOfRows 
(AssemblyProcessorTable.RId);
+                       int number = m_rows [AssemblyProcessorTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new AssemblyProcessorRow ());
                }
                public override void VisitAssemblyRefTable (AssemblyRefTable 
table)
                {
-                       int number = GetNumberOfRows (AssemblyRefTable.RId);
+                       int number = m_rows [AssemblyRefTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new AssemblyRefRow ());
                }
                public override void VisitAssemblyRefOSTable 
(AssemblyRefOSTable table)
                {
-                       int number = GetNumberOfRows (AssemblyRefOSTable.RId);
+                       int number = m_rows [AssemblyRefOSTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new AssemblyRefOSRow ());
                }
                public override void VisitAssemblyRefProcessorTable 
(AssemblyRefProcessorTable table)
                {
-                       int number = GetNumberOfRows 
(AssemblyRefProcessorTable.RId);
+                       int number = m_rows [AssemblyRefProcessorTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new AssemblyRefProcessorRow ());
                }
                public override void VisitClassLayoutTable (ClassLayoutTable 
table)
                {
-                       int number = GetNumberOfRows (ClassLayoutTable.RId);
+                       int number = m_rows [ClassLayoutTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ClassLayoutRow ());
                }
                public override void VisitConstantTable (ConstantTable table)
                {
-                       int number = GetNumberOfRows (ConstantTable.RId);
+                       int number = m_rows [ConstantTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ConstantRow ());
                }
                public override void VisitCustomAttributeTable 
(CustomAttributeTable table)
                {
-                       int number = GetNumberOfRows (CustomAttributeTable.RId);
+                       int number = m_rows [CustomAttributeTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new CustomAttributeRow ());
                }
                public override void VisitDeclSecurityTable (DeclSecurityTable 
table)
                {
-                       int number = GetNumberOfRows (DeclSecurityTable.RId);
+                       int number = m_rows [DeclSecurityTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new DeclSecurityRow ());
                }
                public override void VisitEventTable (EventTable table)
                {
-                       int number = GetNumberOfRows (EventTable.RId);
+                       int number = m_rows [EventTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new EventRow ());
                }
                public override void VisitEventMapTable (EventMapTable table)
                {
-                       int number = GetNumberOfRows (EventMapTable.RId);
+                       int number = m_rows [EventMapTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new EventMapRow ());
                }
                public override void VisitExportedTypeTable (ExportedTypeTable 
table)
                {
-                       int number = GetNumberOfRows (ExportedTypeTable.RId);
+                       int number = m_rows [ExportedTypeTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ExportedTypeRow ());
                }
                public override void VisitFieldTable (FieldTable table)
                {
-                       int number = GetNumberOfRows (FieldTable.RId);
+                       int number = m_rows [FieldTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new FieldRow ());
                }
                public override void VisitFieldLayoutTable (FieldLayoutTable 
table)
                {
-                       int number = GetNumberOfRows (FieldLayoutTable.RId);
+                       int number = m_rows [FieldLayoutTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new FieldLayoutRow ());
                }
                public override void VisitFieldMarshalTable (FieldMarshalTable 
table)
                {
-                       int number = GetNumberOfRows (FieldMarshalTable.RId);
+                       int number = m_rows [FieldMarshalTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new FieldMarshalRow ());
                }
                public override void VisitFieldRVATable (FieldRVATable table)
                {
-                       int number = GetNumberOfRows (FieldRVATable.RId);
+                       int number = m_rows [FieldRVATable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new FieldRVARow ());
                }
                public override void VisitFileTable (FileTable table)
                {
-                       int number = GetNumberOfRows (FileTable.RId);
+                       int number = m_rows [FileTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new FileRow ());
                }
                public override void VisitGenericParamTable (GenericParamTable 
table)
                {
-                       int number = GetNumberOfRows (GenericParamTable.RId);
+                       int number = m_rows [GenericParamTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new GenericParamRow ());
                }
                public override void VisitGenericParamConstraintTable 
(GenericParamConstraintTable table)
                {
-                       int number = GetNumberOfRows 
(GenericParamConstraintTable.RId);
+                       int number = m_rows [GenericParamConstraintTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new GenericParamConstraintRow 
());
                }
                public override void VisitImplMapTable (ImplMapTable table)
                {
-                       int number = GetNumberOfRows (ImplMapTable.RId);
+                       int number = m_rows [ImplMapTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ImplMapRow ());
                }
                public override void VisitInterfaceImplTable 
(InterfaceImplTable table)
                {
-                       int number = GetNumberOfRows (InterfaceImplTable.RId);
+                       int number = m_rows [InterfaceImplTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new InterfaceImplRow ());
                }
                public override void VisitManifestResourceTable 
(ManifestResourceTable table)
                {
-                       int number = GetNumberOfRows 
(ManifestResourceTable.RId);
+                       int number = m_rows [ManifestResourceTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ManifestResourceRow ());
                }
                public override void VisitMemberRefTable (MemberRefTable table)
                {
-                       int number = GetNumberOfRows (MemberRefTable.RId);
+                       int number = m_rows [MemberRefTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new MemberRefRow ());
                }
                public override void VisitMethodTable (MethodTable table)
                {
-                       int number = GetNumberOfRows (MethodTable.RId);
+                       int number = m_rows [MethodTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new MethodRow ());
                }
                public override void VisitMethodImplTable (MethodImplTable 
table)
                {
-                       int number = GetNumberOfRows (MethodImplTable.RId);
+                       int number = m_rows [MethodImplTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new MethodImplRow ());
                }
                public override void VisitMethodSemanticsTable 
(MethodSemanticsTable table)
                {
-                       int number = GetNumberOfRows (MethodSemanticsTable.RId);
+                       int number = m_rows [MethodSemanticsTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new MethodSemanticsRow ());
                }
                public override void VisitMethodSpecTable (MethodSpecTable 
table)
                {
-                       int number = GetNumberOfRows (MethodSpecTable.RId);
+                       int number = m_rows [MethodSpecTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new MethodSpecRow ());
                }
                public override void VisitModuleTable (ModuleTable table)
                {
-                       int number = GetNumberOfRows (ModuleTable.RId);
+                       int number = m_rows [ModuleTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ModuleRow ());
                }
                public override void VisitModuleRefTable (ModuleRefTable table)
                {
-                       int number = GetNumberOfRows (ModuleRefTable.RId);
+                       int number = m_rows [ModuleRefTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ModuleRefRow ());
                }
                public override void VisitNestedClassTable (NestedClassTable 
table)
                {
-                       int number = GetNumberOfRows (NestedClassTable.RId);
+                       int number = m_rows [NestedClassTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new NestedClassRow ());
                }
                public override void VisitParamTable (ParamTable table)
                {
-                       int number = GetNumberOfRows (ParamTable.RId);
+                       int number = m_rows [ParamTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new ParamRow ());
                }
                public override void VisitPropertyTable (PropertyTable table)
                {
-                       int number = GetNumberOfRows (PropertyTable.RId);
+                       int number = m_rows [PropertyTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new PropertyRow ());
                }
                public override void VisitPropertyMapTable (PropertyMapTable 
table)
                {
-                       int number = GetNumberOfRows (PropertyMapTable.RId);
+                       int number = m_rows [PropertyMapTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new PropertyMapRow ());
                }
                public override void VisitStandAloneSigTable 
(StandAloneSigTable table)
                {
-                       int number = GetNumberOfRows (StandAloneSigTable.RId);
+                       int number = m_rows [StandAloneSigTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new StandAloneSigRow ());
                }
                public override void VisitTypeDefTable (TypeDefTable table)
                {
-                       int number = GetNumberOfRows (TypeDefTable.RId);
+                       int number = m_rows [TypeDefTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new TypeDefRow ());
                }
                public override void VisitTypeRefTable (TypeRefTable table)
                {
-                       int number = GetNumberOfRows (TypeRefTable.RId);
+                       int number = m_rows [TypeRefTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new TypeRefRow ());
                }
                public override void VisitTypeSpecTable (TypeSpecTable table)
                {
-                       int number = GetNumberOfRows (TypeSpecTable.RId);
+                       int number = m_rows [TypeSpecTable.RId];
                        table.Rows = new RowCollection (number);
                        for (int i = 0; i < number; i++)
                                table.Rows.Add (new TypeSpecRow ());

Modified: trunk/cecil/lib/Mono.Cecil.Metadata/TableCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/TableCollection.cs      2006-05-18 
17:27:50 UTC (rev 60829)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/TableCollection.cs      2006-05-18 
17:31:30 UTC (rev 60830)
@@ -33,7 +33,7 @@
 
        public class TableCollection : ICollection, IMetadataTableVisitable     
{
 
-               IMetadataTable [] m_tables = new IMetadataTable [45];
+               IMetadataTable [] m_tables = new IMetadataTable 
[TablesHeap.MaxTableCount];
 
                TablesHeap m_heap;
 

Modified: trunk/cecil/lib/Mono.Cecil.Metadata/TablesHeap.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Metadata/TablesHeap.cs   2006-05-18 17:27:50 UTC 
(rev 60829)
+++ trunk/cecil/lib/Mono.Cecil.Metadata/TablesHeap.cs   2006-05-18 17:31:30 UTC 
(rev 60830)
@@ -43,6 +43,8 @@
 
                TableCollection m_tables;
 
+               public const int MaxTableCount = 45;
+
                public TableCollection Tables {
                        get { return m_tables; }
                        set { m_tables = value; }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to