Author: jbevain
Date: 2005-02-25 17:52:47 -0500 (Fri, 25 Feb 2005)
New Revision: 41222

Modified:
   trunk/cecil/lib/CodeGen/cecil.xml
   trunk/cecil/lib/CodeGen/templates/IIndexedCollection.cs
   trunk/cecil/lib/CodeGen/templates/INamedCollection.cs
   trunk/cecil/lib/Mono.Cecil.Cil/IExceptionHandlerCollection.cs
   trunk/cecil/lib/Mono.Cecil.Cil/IInstructionCollection.cs
   trunk/cecil/lib/Mono.Cecil.Cil/IVariableDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil.Implem/AggressiveReflectionReader.cs
   trunk/cecil/lib/Mono.Cecil.Implem/AssemblyNameReferenceCollection.cs
   trunk/cecil/lib/Mono.Cecil.Implem/CodeReader.cs
   trunk/cecil/lib/Mono.Cecil.Implem/FunctionPointerType.cs
   trunk/cecil/lib/Mono.Cecil.Implem/LazyReflectionReader.cs
   trunk/cecil/lib/Mono.Cecil.Implem/ModuleDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil.Implem/ReflectionReader.cs
   trunk/cecil/lib/Mono.Cecil.Implem/StructureReader.cs
   trunk/cecil/lib/Mono.Cecil/IArrayDimensionCollection.cs
   trunk/cecil/lib/Mono.Cecil/IAssemblyNameReferenceCollection.cs
   trunk/cecil/lib/Mono.Cecil/ICustomAttributeCollection.cs
   trunk/cecil/lib/Mono.Cecil/IEventDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil/IFieldDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil/IInterfaceCollection.cs
   trunk/cecil/lib/Mono.Cecil/IMethodDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil/IModuleDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil/IModuleReferenceCollection.cs
   trunk/cecil/lib/Mono.Cecil/IOverrideCollection.cs
   trunk/cecil/lib/Mono.Cecil/IParameterDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil/IPropertyDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil/IResourceCollection.cs
   trunk/cecil/lib/Mono.Cecil/ISecurityDeclarationCollection.cs
   trunk/cecil/lib/Mono.Cecil/ITypeDefinitionCollection.cs
   trunk/cecil/lib/Mono.Cecil/ITypeReferenceCollection.cs
Log:
don't allow people to add items using mutators, they will have to use factory 
methods

Modified: trunk/cecil/lib/CodeGen/cecil.xml
===================================================================
--- trunk/cecil/lib/CodeGen/cecil.xml   2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/CodeGen/cecil.xml   2005-02-25 22:52:47 UTC (rev 41222)
@@ -645,9 +645,9 @@
         that will be used in the Reflection ns
     -->
     <collections>
-        <collection type="IAssemblyNameReference" 
container="IModuleDefinition" visit="IReflectionStructure" target="Mono.Cecil" 
/>
+        <collection type="IAssemblyNameReference" 
container="IModuleDefinition" visit="IReflectionStructure" target="Mono.Cecil" 
indexed="true" />
         <collection type="IModuleReference" container="IModuleDefinition" 
visit="IReflectionStructure" indexed="true" target="Mono.Cecil" />
-        <collection type="IModuleDefinition" container="IAssemblyDefinition" 
visit="IReflectionStructure" target="Mono.Cecil" />
+        <collection type="IModuleDefinition" container="IAssemblyDefinition" 
visit="IReflectionStructure" indexed="true" target="Mono.Cecil" />
         <collection type="IResource" container="IModuleDefinition" 
visit="IReflectionStructure" target="Mono.Cecil" />
         <collection type="ITypeDefinition" container="IModuleDefinition" 
visit="IReflection" lazyload="true" pathtoloader="ReflectionReader" 
target="Mono.Cecil" />
         <collection type="ITypeReference" container="IModuleDefinition" 
visit="IReflection" target="Mono.Cecil" />

Modified: trunk/cecil/lib/CodeGen/templates/IIndexedCollection.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/IIndexedCollection.cs     2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/CodeGen/templates/IIndexedCollection.cs     2005-02-25 
22:52:47 UTC (rev 41222)
@@ -19,11 +19,10 @@
 
     public interface <%=$cur_coll.intf%> : ICollection<% if 
(!$cur_coll.visitable.nil?) then %>, <%=$cur_coll.visitable%><% end %> {
 
-        <%=$cur_coll.type%> this [int index] { get; set; }
-        
+        <%=$cur_coll.type%> this [int index] { get; }
+
         <%=$cur_coll.container%> Container { get; }
-        
-        void Add (<%=$cur_coll.type%> value);
+
         void Clear ();
         bool Contains (<%=$cur_coll.type%> value);
         int IndexOf (<%=$cur_coll.type%> value);

Modified: trunk/cecil/lib/CodeGen/templates/INamedCollection.cs
===================================================================
--- trunk/cecil/lib/CodeGen/templates/INamedCollection.cs       2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/CodeGen/templates/INamedCollection.cs       2005-02-25 
22:52:47 UTC (rev 41222)
@@ -19,7 +19,7 @@
 
     public interface <%=$cur_coll.intf%> : ICollection<% if 
(!$cur_coll.visitable.nil?) then %>, <%=$cur_coll.visitable%><% end %> {
 
-        <%=$cur_coll.type%> this [string name] { get; set; }
+        <%=$cur_coll.type%> this [string name] { get; }
 
         <%=$cur_coll.container%> Container { get; }
 

Modified: trunk/cecil/lib/Mono.Cecil/IArrayDimensionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IArrayDimensionCollection.cs     2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IArrayDimensionCollection.cs     2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Mon Feb 14 12:12:08 Paris, Madrid 2005
+ * Fri Feb 25 23:29:20 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IArrayDimensionCollection : ICollection {
 
-        IArrayDimension this [int index] { get; set; }
-        
+        IArrayDimension this [int index] { get; }
+
         IArrayType Container { get; }
-        
-        void Add (IArrayDimension value);
+
         void Clear ();
         bool Contains (IArrayDimension value);
         int IndexOf (IArrayDimension value);

Modified: trunk/cecil/lib/Mono.Cecil/IAssemblyNameReferenceCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IAssemblyNameReferenceCollection.cs      
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IAssemblyNameReferenceCollection.cs      
2005-02-25 22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Wed Jan 19 14:17:35 Paris, Madrid 2005
+ * Fri Feb 25 23:50:49 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,12 +19,15 @@
 
     public interface IAssemblyNameReferenceCollection : ICollection, 
IReflectionStructureVisitable {
 
-        IAssemblyNameReference this [string name] { get; set; }
+        IAssemblyNameReference this [int index] { get; }
 
         IModuleDefinition Container { get; }
 
         void Clear ();
         bool Contains (IAssemblyNameReference value);
+        int IndexOf (IAssemblyNameReference value);
+        void Insert (int index, IAssemblyNameReference value);
         void Remove (IAssemblyNameReference value);
+        void RemoveAt (int index);
     }
 }

Modified: trunk/cecil/lib/Mono.Cecil/ICustomAttributeCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/ICustomAttributeCollection.cs    2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/ICustomAttributeCollection.cs    2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Wed Feb 23 12:19:32 Paris, Madrid 2005
+ * Fri Feb 25 23:29:21 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface ICustomAttributeCollection : ICollection, 
IReflectionVisitable {
 
-        ICustomAttribute this [int index] { get; set; }
-        
+        ICustomAttribute this [int index] { get; }
+
         ICustomAttributeProvider Container { get; }
-        
-        void Add (ICustomAttribute value);
+
         void Clear ();
         bool Contains (ICustomAttribute value);
         int IndexOf (ICustomAttribute value);

Modified: trunk/cecil/lib/Mono.Cecil/IEventDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IEventDefinitionCollection.cs    2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IEventDefinitionCollection.cs    2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Sun Jan 30 19:09:20 Paris, Madrid 2005
+ * Fri Feb 25 23:29:18 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,7 +19,7 @@
 
     public interface IEventDefinitionCollection : ICollection, 
IReflectionVisitable {
 
-        IEventDefinition this [string name] { get; set; }
+        IEventDefinition this [string name] { get; }
 
         ITypeDefinition Container { get; }
 

Modified: trunk/cecil/lib/Mono.Cecil/IFieldDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IFieldDefinitionCollection.cs    2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IFieldDefinitionCollection.cs    2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Sun Jan 30 19:09:20 Paris, Madrid 2005
+ * Fri Feb 25 23:29:19 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,7 +19,7 @@
 
     public interface IFieldDefinitionCollection : ICollection, 
IReflectionVisitable {
 
-        IFieldDefinition this [string name] { get; set; }
+        IFieldDefinition this [string name] { get; }
 
         ITypeDefinition Container { get; }
 

Modified: trunk/cecil/lib/Mono.Cecil/IInterfaceCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IInterfaceCollection.cs  2005-02-25 22:12:32 UTC 
(rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IInterfaceCollection.cs  2005-02-25 22:52:47 UTC 
(rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Feb 15 16:25:27 Paris, Madrid 2005
+ * Fri Feb 25 23:29:18 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IInterfaceCollection : ICollection, IReflectionVisitable {
 
-        ITypeReference this [int index] { get; set; }
-        
+        ITypeReference this [int index] { get; }
+
         ITypeDefinition Container { get; }
-        
-        void Add (ITypeReference value);
+
         void Clear ();
         bool Contains (ITypeReference value);
         int IndexOf (ITypeReference value);

Modified: trunk/cecil/lib/Mono.Cecil/IMethodDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IMethodDefinitionCollection.cs   2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IMethodDefinitionCollection.cs   2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Mon Feb 14 22:21:15 Paris, Madrid 2005
+ * Fri Feb 25 23:29:18 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IMethodDefinitionCollection : ICollection, 
IReflectionVisitable {
 
-        IMethodDefinition this [int index] { get; set; }
-        
+        IMethodDefinition this [int index] { get; }
+
         ITypeDefinition Container { get; }
-        
-        void Add (IMethodDefinition value);
+
         void Clear ();
         bool Contains (IMethodDefinition value);
         int IndexOf (IMethodDefinition value);

Modified: trunk/cecil/lib/Mono.Cecil/IModuleDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IModuleDefinitionCollection.cs   2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IModuleDefinitionCollection.cs   2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Wed Jan 19 14:17:35 Paris, Madrid 2005
+ * Fri Feb 25 23:52:58 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,12 +19,15 @@
 
     public interface IModuleDefinitionCollection : ICollection, 
IReflectionStructureVisitable {
 
-        IModuleDefinition this [string name] { get; set; }
+        IModuleDefinition this [int index] { get; }
 
         IAssemblyDefinition Container { get; }
 
         void Clear ();
         bool Contains (IModuleDefinition value);
+        int IndexOf (IModuleDefinition value);
+        void Insert (int index, IModuleDefinition value);
         void Remove (IModuleDefinition value);
+        void RemoveAt (int index);
     }
 }

Modified: trunk/cecil/lib/Mono.Cecil/IModuleReferenceCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IModuleReferenceCollection.cs    2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IModuleReferenceCollection.cs    2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Feb 15 01:28:25 Paris, Madrid 2005
+ * Fri Feb 25 23:29:17 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IModuleReferenceCollection : ICollection, 
IReflectionStructureVisitable {
 
-        IModuleReference this [int index] { get; set; }
-        
+        IModuleReference this [int index] { get; }
+
         IModuleDefinition Container { get; }
-        
-        void Add (IModuleReference value);
+
         void Clear ();
         bool Contains (IModuleReference value);
         int IndexOf (IModuleReference value);

Modified: trunk/cecil/lib/Mono.Cecil/IOverrideCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IOverrideCollection.cs   2005-02-25 22:12:32 UTC 
(rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IOverrideCollection.cs   2005-02-25 22:52:47 UTC 
(rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Mon Feb 14 12:12:08 Paris, Madrid 2005
+ * Fri Feb 25 23:29:18 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IOverrideCollection : ICollection, IReflectionVisitable {
 
-        IMethodReference this [int index] { get; set; }
-        
+        IMethodReference this [int index] { get; }
+
         IMethodDefinition Container { get; }
-        
-        void Add (IMethodReference value);
+
         void Clear ();
         bool Contains (IMethodReference value);
         int IndexOf (IMethodReference value);

Modified: trunk/cecil/lib/Mono.Cecil/IParameterDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IParameterDefinitionCollection.cs        
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IParameterDefinitionCollection.cs        
2005-02-25 22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Wed Feb 16 17:36:05 Paris, Madrid 2005
+ * Fri Feb 25 23:29:18 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IParameterDefinitionCollection : ICollection, 
IReflectionVisitable {
 
-        IParameterDefinition this [int index] { get; set; }
-        
+        IParameterDefinition this [int index] { get; }
+
         IMemberReference Container { get; }
-        
-        void Add (IParameterDefinition value);
+
         void Clear ();
         bool Contains (IParameterDefinition value);
         int IndexOf (IParameterDefinition value);

Modified: trunk/cecil/lib/Mono.Cecil/IPropertyDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IPropertyDefinitionCollection.cs 2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IPropertyDefinitionCollection.cs 2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Sun Jan 30 19:28:40 Paris, Madrid 2005
+ * Fri Feb 25 23:29:19 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,7 +19,7 @@
 
     public interface IPropertyDefinitionCollection : ICollection, 
IReflectionVisitable {
 
-        IPropertyDefinition this [string name] { get; set; }
+        IPropertyDefinition this [string name] { get; }
 
         ITypeDefinition Container { get; }
 

Modified: trunk/cecil/lib/Mono.Cecil/IResourceCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/IResourceCollection.cs   2005-02-25 22:12:32 UTC 
(rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/IResourceCollection.cs   2005-02-25 22:52:47 UTC 
(rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Wed Jan 19 14:17:35 Paris, Madrid 2005
+ * Fri Feb 25 23:29:17 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,7 +19,7 @@
 
     public interface IResourceCollection : ICollection, 
IReflectionStructureVisitable {
 
-        IResource this [string name] { get; set; }
+        IResource this [string name] { get; }
 
         IModuleDefinition Container { get; }
 

Modified: trunk/cecil/lib/Mono.Cecil/ISecurityDeclarationCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/ISecurityDeclarationCollection.cs        
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/ISecurityDeclarationCollection.cs        
2005-02-25 22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Tue Feb 15 23:26:16 Paris, Madrid 2005
+ * Fri Feb 25 23:29:21 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface ISecurityDeclarationCollection : ICollection, 
IReflectionVisitable {
 
-        ISecurityDeclaration this [int index] { get; set; }
-        
+        ISecurityDeclaration this [int index] { get; }
+
         IHasSecurity Container { get; }
-        
-        void Add (ISecurityDeclaration value);
+
         void Clear ();
         bool Contains (ISecurityDeclaration value);
         int IndexOf (ISecurityDeclaration value);

Modified: trunk/cecil/lib/Mono.Cecil/ITypeDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/ITypeDefinitionCollection.cs     2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/ITypeDefinitionCollection.cs     2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Wed Jan 19 14:17:35 Paris, Madrid 2005
+ * Fri Feb 25 23:29:17 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,7 +19,7 @@
 
     public interface ITypeDefinitionCollection : ICollection, 
IReflectionVisitable {
 
-        ITypeDefinition this [string name] { get; set; }
+        ITypeDefinition this [string name] { get; }
 
         IModuleDefinition Container { get; }
 

Modified: trunk/cecil/lib/Mono.Cecil/ITypeReferenceCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil/ITypeReferenceCollection.cs      2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil/ITypeReferenceCollection.cs      2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Sat Feb 12 04:05:53 Paris, Madrid 2005
+ * Fri Feb 25 23:29:17 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,7 +19,7 @@
 
     public interface ITypeReferenceCollection : ICollection, 
IReflectionVisitable {
 
-        ITypeReference this [string name] { get; set; }
+        ITypeReference this [string name] { get; }
 
         IModuleDefinition Container { get; }
 

Modified: trunk/cecil/lib/Mono.Cecil.Cil/IExceptionHandlerCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Cil/IExceptionHandlerCollection.cs       
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Cil/IExceptionHandlerCollection.cs       
2005-02-25 22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Mon Feb 14 12:12:08 Paris, Madrid 2005
+ * Fri Feb 25 23:29:20 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IExceptionHandlerCollection : ICollection, ICodeVisitable 
{
 
-        IExceptionHandler this [int index] { get; set; }
-        
+        IExceptionHandler this [int index] { get; }
+
         IMethodBody Container { get; }
-        
-        void Add (IExceptionHandler value);
+
         void Clear ();
         bool Contains (IExceptionHandler value);
         int IndexOf (IExceptionHandler value);

Modified: trunk/cecil/lib/Mono.Cecil.Cil/IInstructionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Cil/IInstructionCollection.cs    2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Cil/IInstructionCollection.cs    2005-02-25 
22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Mon Feb 14 12:12:08 Paris, Madrid 2005
+ * Fri Feb 25 23:29:20 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IInstructionCollection : ICollection, ICodeVisitable {
 
-        IInstruction this [int index] { get; set; }
-        
+        IInstruction this [int index] { get; }
+
         IMethodBody Container { get; }
-        
-        void Add (IInstruction value);
+
         void Clear ();
         bool Contains (IInstruction value);
         int IndexOf (IInstruction value);

Modified: trunk/cecil/lib/Mono.Cecil.Cil/IVariableDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Cil/IVariableDefinitionCollection.cs     
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Cil/IVariableDefinitionCollection.cs     
2005-02-25 22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Mon Feb 14 12:12:08 Paris, Madrid 2005
+ * Fri Feb 25 23:29:20 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -19,11 +19,10 @@
 
     public interface IVariableDefinitionCollection : ICollection, 
ICodeVisitable {
 
-        IVariableDefinition this [int index] { get; set; }
-        
+        IVariableDefinition this [int index] { get; }
+
         IMethodBody Container { get; }
-        
-        void Add (IVariableDefinition value);
+
         void Clear ();
         bool Contains (IVariableDefinition value);
         int IndexOf (IVariableDefinition value);

Modified: trunk/cecil/lib/Mono.Cecil.Implem/AggressiveReflectionReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/AggressiveReflectionReader.cs     
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/AggressiveReflectionReader.cs     
2005-02-25 22:52:47 UTC (rev 41222)
@@ -112,8 +112,10 @@
                     PropertySig psig = m_sigReader.GetPropSig (prow.Type);
                     PropertyDefinition pdef = new PropertyDefinition 
(MetadataRoot.Streams.StringsHeap [prow.Name],
                                                                       owner, 
this.GetTypeRefFromSig (psig.Type), prow.Flags);
-                    owner.Properties [pdef.Name] = pdef;
-                    ((PropertyDefinitionCollection)owner.Properties).Loaded = 
true;
+
+                    PropertyDefinitionCollection props = owner.Properties as 
PropertyDefinitionCollection;
+                    props [pdef.Name] = pdef;
+                    props.Loaded = true;
                     m_properties [j - 1] = pdef;
                 }
             }
@@ -140,8 +142,10 @@
                     EventRow erow = evtTable [j - 1];
                     EventDefinition edef = new EventDefinition 
(m_root.Streams.StringsHeap [erow.Name], owner,
                                                                 
GetTypeDefOrRef (erow.EventType), erow.EventFlags);
-                    owner.Events [edef.Name] = edef;
-                    ((EventDefinitionCollection)owner.Events).Loaded = true;
+
+                    EventDefinitionCollection evts = owner.Events as 
EventDefinitionCollection;
+                    evts.Loaded = true;
+                    evts [edef.Name] = edef;
                     m_events [j - 1] = edef;
                 }
             }
@@ -189,7 +193,7 @@
             for (int i = 0; i < intfsTable.Rows.Count; i++) {
                 InterfaceImplRow intfsRow = intfsTable [i];
                 TypeDefinition owner = GetTypeDefAt ((int)intfsRow.Class);
-                owner.Interfaces.Add (GetTypeDefOrRef (intfsRow.Interface));
+                (owner.Interfaces as InterfaceCollection).Add (GetTypeDefOrRef 
(intfsRow.Interface));
                 ((InterfaceCollection)owner.Interfaces).Loaded = true;
             }
         }
@@ -206,10 +210,10 @@
                     MethodDefinition owner = GetMethodDefAt ((int) 
implRow.MethodBody.RID);
                     switch (implRow.MethodDeclaration.TokenType) {
                     case TokenType.Method :
-                        owner.Overrides.Add (GetMethodDefAt ((int) 
implRow.MethodDeclaration.RID));
+                        (owner.Overrides as OverrideCollection).Add 
(GetMethodDefAt ((int) implRow.MethodDeclaration.RID));
                         break;
                     case TokenType.MemberRef :
-                        owner.Overrides.Add (GetMemberRefAt ((int) 
implRow.MethodDeclaration.RID) as IMethodReference);
+                        (owner.Overrides as OverrideCollection).Add 
(GetMemberRefAt ((int) implRow.MethodDeclaration.RID) as IMethodReference);
                         break;
                     }
                     ((OverrideCollection)owner.Overrides).Loaded = true;
@@ -240,8 +244,10 @@
                     break;
                 }
 
-                owner.SecurityDeclarations.Add (dec);
-                
((SecurityDeclarationCollection)owner.SecurityDeclarations).Loaded = true;
+                SecurityDeclarationCollection secDecls = 
owner.SecurityDeclarations as SecurityDeclarationCollection;
+
+                secDecls.Add (dec);
+                secDecls.Loaded = true;
             }
         }
 
@@ -262,42 +268,37 @@
                 CustomAttrib ca = m_sigReader.GetCustomAttrib (caRow.Value, 
ctor);
                 CustomAttribute cattr = BuildCustomAttribute (ctor, ca);
 
-                ICustomAttributeProvider owner = null;
+                ICustomAttributeCollection owner = null;
                 switch (caRow.Parent.TokenType) {
                 case TokenType.Assembly :
-                    this.Module.Assembly.CustomAttributes.Add (cattr);
+                    owner = this.Module.Assembly.CustomAttributes;
                     break;
                 case TokenType.Module :
-                    this.Module.CustomAttributes.Add (cattr); // not sure of 
this, take care to multi modules asm
+                    owner = this.Module.CustomAttributes; // not sure of this, 
take care to multi modules asm
                     break;
                 case TokenType.TypeDef :
-                    owner = GetTypeDefAt ((int) caRow.Parent.RID);
-                    owner.CustomAttributes.Add (cattr);
+                    owner = GetTypeDefAt ((int) 
caRow.Parent.RID).CustomAttributes;
                     break;
                 case TokenType.Field :
-                    owner = GetFieldDefAt ((int) caRow.Parent.RID);
-                    owner.CustomAttributes.Add (cattr);
+                    owner = GetFieldDefAt ((int) 
caRow.Parent.RID).CustomAttributes;
                     break;
                 case TokenType.Method :
-                    owner = GetMethodDefAt ((int) caRow.Parent.RID);
-                    owner.CustomAttributes.Add (cattr);
+                    owner = GetMethodDefAt ((int) 
caRow.Parent.RID).CustomAttributes;
                     break;
                 case TokenType.Property :
-                    owner = m_properties [caRow.Parent.RID - 1];
-                    owner.CustomAttributes.Add (cattr);
+                    owner = m_properties [caRow.Parent.RID - 
1].CustomAttributes;
                     break;
                 case TokenType.Event :
-                    owner = m_properties [caRow.Parent.RID - 1];
-                    owner.CustomAttributes.Add (cattr);
+                    owner = m_properties [caRow.Parent.RID - 
1].CustomAttributes;
                     break;
                 case TokenType.Param :
-                    owner = m_parameters [caRow.Parent.RID - 1];
-                    owner.CustomAttributes.Add (cattr);
+                    owner = m_parameters [caRow.Parent.RID - 
1].CustomAttributes;
                     break;
                 default :
                     //TODO: support other ?
                     break;
                 }
+                (owner as CustomAttributeCollection).Add (cattr);
             }
         }
 

Modified: trunk/cecil/lib/Mono.Cecil.Implem/AssemblyNameReferenceCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/AssemblyNameReferenceCollection.cs        
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/AssemblyNameReferenceCollection.cs        
2005-02-25 22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Thu Feb 24 06:35:34 Paris, Madrid 2005
+ * Fri Feb 25 23:50:49 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -23,12 +23,12 @@
 
     internal class AssemblyNameReferenceCollection : 
IAssemblyNameReferenceCollection {
 
-        private IDictionary m_items;
-        private IModuleDefinition m_container;
+        private IList m_items;
+        private ModuleDefinition m_container;
 
-        public IAssemblyNameReference this [string name] {
-            get { return m_items [name] as IAssemblyNameReference; }
-            set { m_items [name] = value; }
+        public IAssemblyNameReference this [int index] {
+            get { return m_items [index] as IAssemblyNameReference; }
+            set { m_items [index] = value; }
         }
 
         public IModuleDefinition Container {
@@ -47,11 +47,16 @@
             get { return this; }
         }
 
-        public AssemblyNameReferenceCollection (IModuleDefinition container)
+        public AssemblyNameReferenceCollection (ModuleDefinition container)
         {
             m_container = container;
-            m_items = new Hashtable ();
+            m_items = new ArrayList ();
         }
+        
+        public void Add (IAssemblyNameReference value)
+        {
+            m_items.Add (value);
+        }
 
         public void Clear ()
         {
@@ -62,27 +67,42 @@
         {
             return m_items.Contains (value);
         }
+        
+        public int IndexOf (IAssemblyNameReference value)
+        {
+            return m_items.IndexOf (value);
+        }
 
+        public void Insert (int index, IAssemblyNameReference value)
+        {
+            m_items.Insert (index, value);
+        }
+
         public void Remove (IAssemblyNameReference value)
         {
             m_items.Remove (value);
         }
 
+        public void RemoveAt (int index)
+        {
+            m_items.Remove (index);
+        }
+
         public void CopyTo (Array ary, int index)
         {
-            m_items.Values.CopyTo (ary, index);
+            m_items.CopyTo (ary, index);
         }
 
         public IEnumerator GetEnumerator ()
         {
-            return m_items.Values.GetEnumerator ();
+            return m_items.GetEnumerator ();
         }
 
         public void Accept (IReflectionStructureVisitor visitor)
         {
             visitor.Visit (this);
             IAssemblyNameReference [] items = new IAssemblyNameReference 
[m_items.Count];
-            m_items.Values.CopyTo (items, 0);
+            m_items.CopyTo (items, 0);
             for (int i = 0; i < items.Length; i++)
                 items [i].Accept (visitor);
         }

Modified: trunk/cecil/lib/Mono.Cecil.Implem/CodeReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/CodeReader.cs     2005-02-25 22:12:32 UTC 
(rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/CodeReader.cs     2005-02-25 22:52:47 UTC 
(rev 41222)
@@ -164,7 +164,7 @@
                     break;
                 }
 
-                body.Instructions.Add (instr);
+                (body.Instructions as InstructionCollection).Add (instr);
             }
         }
 
@@ -200,7 +200,7 @@
                         br.ReadInt32 ();
                         break;
                     }
-                    body.ExceptionHandlers.Add (eh);
+                    (body.ExceptionHandlers as ExceptionHandlerCollection).Add 
(eh);
                 }
             } else {
                 br.BaseStream.Position--;
@@ -229,7 +229,7 @@
                         br.ReadInt32 ();
                         break;
                     }
-                    body.ExceptionHandlers.Add (eh);
+                    (body.ExceptionHandlers as ExceptionHandlerCollection).Add 
(eh);
                 }
             }
 
@@ -270,7 +270,7 @@
                     varType = new ReferenceType (varType);
                 if ((lv.Constraint & Constraint.Pinned) != 0)
                     varType = new PinnedType (varType);
-                variables.Add (new VariableDefinition (string.Concat ("V_", 
i), meth, varType));
+                (variables as VariableDefinitionCollection).Add (new 
VariableDefinition (string.Concat ("V_", i), meth, varType));
             }
         }
 

Modified: trunk/cecil/lib/Mono.Cecil.Implem/FunctionPointerType.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/FunctionPointerType.cs    2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/FunctionPointerType.cs    2005-02-25 
22:52:47 UTC (rev 41222)
@@ -65,7 +65,7 @@
             m_function = new MethodReference ("function", this, hasThis, 
explicitThis, callConv);
             m_function.ReturnType = retType;
             foreach (ParameterDefinition param in parameters)
-                m_function.Parameters.Add (param);
+                (m_function.Parameters as ParameterDefinitionCollection).Add 
(param);
         }
     }
 }

Modified: trunk/cecil/lib/Mono.Cecil.Implem/LazyReflectionReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/LazyReflectionReader.cs   2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/LazyReflectionReader.cs   2005-02-25 
22:52:47 UTC (rev 41222)
@@ -44,7 +44,7 @@
                 InterfaceImplRow intRow = intfsTable [i];
                 if (intRow.Class == rid) {
                     ITypeReference interf = GetTypeDefOrRef (intRow.Interface);
-                    interfaces.Add (interf);
+                    (interfaces as InterfaceCollection).Add (interf);
                 }
             }
 
@@ -69,9 +69,9 @@
                 MethodImplRow implRow = implTable [i];
                 if (implRow.MethodBody.TokenType == TokenType.Method && 
implRow.MethodBody.RID == index) {
                     if (implRow.MethodDeclaration.TokenType == 
TokenType.Method)
-                        meths.Add (GetMethodDefAt ((int) 
implRow.MethodDeclaration.RID));
+                        methods.Add (GetMethodDefAt ((int) 
implRow.MethodDeclaration.RID));
                     else if (implRow.MethodDeclaration.TokenType == 
TokenType.MemberRef)
-                        meths.Add (GetMemberRefAt ((int) 
implRow.MethodDeclaration.RID) as IMethodReference);
+                        methods.Add (GetMemberRefAt ((int) 
implRow.MethodDeclaration.RID) as IMethodReference);
                 }
             }
         }
@@ -106,12 +106,12 @@
                 switch (dsRow.Parent.TokenType) {
                 case TokenType.Assembly :
                     if (target == TokenType.Assembly)
-                        secDecls.Add (BuildSecurityDeclaration (dsRow));
+                        secDeclarations.Add (BuildSecurityDeclaration (dsRow));
                     break;
                 case TokenType.Method :
                 case TokenType.TypeDef :
                     if (dsRow.Parent.TokenType == target && dsRow.Parent.RID 
== rid)
-                        secDecls.Add (BuildSecurityDeclaration (dsRow));
+                        secDeclarations.Add (BuildSecurityDeclaration (dsRow));
                     break;
                 }
             }
@@ -191,7 +191,7 @@
                     break;
                 }
                 if (ca != null) {
-                    customAttrs.Add (ca);
+                    customAttributes.Add (ca);
                 }
             }
 
@@ -240,7 +240,7 @@
                 EventRow erow = evtTable [i - 1];
                 EventDefinition edef = new EventDefinition 
(m_root.Streams.StringsHeap [erow.Name], dec,
                                                             GetTypeDefOrRef 
(erow.EventType), erow.EventFlags);
-                events [edef.Name] = edef;
+                evts [edef.Name] = edef;
                 m_events [i - 1] = edef;
             }
 
@@ -305,7 +305,7 @@
                 PropertySig psig = m_sigReader.GetPropSig (prow.Type);
                 PropertyDefinition pdef = new PropertyDefinition 
(MetadataRoot.Streams.StringsHeap [prow.Name],
                                                                   dec, 
this.GetTypeRefFromSig (psig.Type), prow.Flags);
-                properties [pdef.Name] = pdef;
+                props [pdef.Name] = pdef;
                 m_properties [i - 1] = pdef;
             }
 

Modified: trunk/cecil/lib/Mono.Cecil.Implem/ModuleDefinitionCollection.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/ModuleDefinitionCollection.cs     
2005-02-25 22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/ModuleDefinitionCollection.cs     
2005-02-25 22:52:47 UTC (rev 41222)
@@ -9,7 +9,7 @@
  * See LICENSE.MIT file for more details
  *
  * Generated by /CodeGen/cecil-gen.rb do not edit
- * Thu Feb 24 06:35:34 Paris, Madrid 2005
+ * Fri Feb 25 23:52:58 Paris, Madrid 2005
  *
  *****************************************************************************/
 
@@ -23,12 +23,12 @@
 
     internal class ModuleDefinitionCollection : IModuleDefinitionCollection {
 
-        private IDictionary m_items;
-        private IAssemblyDefinition m_container;
+        private IList m_items;
+        private AssemblyDefinition m_container;
 
-        public IModuleDefinition this [string name] {
-            get { return m_items [name] as IModuleDefinition; }
-            set { m_items [name] = value; }
+        public IModuleDefinition this [int index] {
+            get { return m_items [index] as IModuleDefinition; }
+            set { m_items [index] = value; }
         }
 
         public IAssemblyDefinition Container {
@@ -47,11 +47,16 @@
             get { return this; }
         }
 
-        public ModuleDefinitionCollection (IAssemblyDefinition container)
+        public ModuleDefinitionCollection (AssemblyDefinition container)
         {
             m_container = container;
-            m_items = new Hashtable ();
+            m_items = new ArrayList ();
         }
+        
+        public void Add (IModuleDefinition value)
+        {
+            m_items.Add (value);
+        }
 
         public void Clear ()
         {
@@ -62,27 +67,42 @@
         {
             return m_items.Contains (value);
         }
+        
+        public int IndexOf (IModuleDefinition value)
+        {
+            return m_items.IndexOf (value);
+        }
 
+        public void Insert (int index, IModuleDefinition value)
+        {
+            m_items.Insert (index, value);
+        }
+
         public void Remove (IModuleDefinition value)
         {
             m_items.Remove (value);
         }
 
+        public void RemoveAt (int index)
+        {
+            m_items.Remove (index);
+        }
+
         public void CopyTo (Array ary, int index)
         {
-            m_items.Values.CopyTo (ary, index);
+            m_items.CopyTo (ary, index);
         }
 
         public IEnumerator GetEnumerator ()
         {
-            return m_items.Values.GetEnumerator ();
+            return m_items.GetEnumerator ();
         }
 
         public void Accept (IReflectionStructureVisitor visitor)
         {
             visitor.Visit (this);
             IModuleDefinition [] items = new IModuleDefinition [m_items.Count];
-            m_items.Values.CopyTo (items, 0);
+            m_items.CopyTo (items, 0);
             for (int i = 0; i < items.Length; i++)
                 items [i].Accept (visitor);
         }

Modified: trunk/cecil/lib/Mono.Cecil.Implem/ReflectionReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/ReflectionReader.cs       2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/ReflectionReader.cs       2005-02-25 
22:52:47 UTC (rev 41222)
@@ -139,7 +139,7 @@
                 if (parts.Length != 2)
                     throw new ReflectionException ("Unvalid core type name");
                 coreType = new TypeReference (parts [1], parts [0]);
-                m_module.TypeReferences [coreType.FullName] = coreType;
+                (m_module.TypeReferences as TypeReferenceCollection) 
[coreType.FullName] = coreType;
             }
             return coreType;
         }
@@ -191,7 +191,7 @@
                         m_root.Streams.StringsHeap [type.Namespace]);
 
                     m_typeRefs [i] = t;
-                    ((ModuleDefinition)tdc.Container).TypeReferences 
[t.FullName] = t;
+                    (m_module.TypeReferences as TypeReferenceCollection) 
[t.FullName] = t;
                 }
             } else
                 m_typeRefs = new TypeReference [0];
@@ -263,8 +263,11 @@
                     FieldSig fsig = m_sigReader.GetFieldSig (frow.Signature);
                     FieldDefinition fdef = new FieldDefinition 
(m_root.Streams.StringsHeap [frow.Name],
                                                                 dec, 
this.GetTypeRefFromSig (fsig.Type), frow.Flags);
-                    dec.Fields [fdef.Name] = fdef;
-                    ((FieldDefinitionCollection)dec.Fields).Loaded = true;
+
+                    FieldDefinitionCollection flds = dec.Fields as 
FieldDefinitionCollection;
+
+                    flds.Loaded = true;
+                    flds [fdef.Name] = fdef;
                     m_fields [j - 1] = fdef;
                 }
             }
@@ -320,7 +323,7 @@
                         ParameterDefinition pdef = BuildParameterDefinition 
(m_root.Streams.StringsHeap [prow.Name],
                                                                              
prow.Sequence, prow.Flags, psig);
                         pdef.Method = mdef;
-                        mdef.Parameters.Add (pdef);
+                        (mdef.Parameters as ParameterDefinitionCollection).Add 
(pdef);
                         m_parameters [k - 1] = pdef; l++;
                     }
 
@@ -333,8 +336,11 @@
                     }
 
                     m_meths [j - 1] = mdef;
-                    ((MethodDefinitionCollection)dec.Methods).Loaded = true;
-                    dec.Methods.Add (mdef);
+
+                    MethodDefinitionCollection methDefs = dec.Methods as 
MethodDefinitionCollection;
+
+                    methDefs.Loaded = true;
+                    methDefs.Add (mdef);
                 }
             }
         }
@@ -369,7 +375,7 @@
                             Param p = ms.Parameters [j];
                             ParameterDefinition pdef = 
BuildParameterDefinition (string.Concat ("arg", i), i, new ParamAttributes (), 
p);
                             pdef.Method = methref;
-                            methref.Parameters.Add (pdef);
+                            (methref.Parameters as 
ParameterDefinitionCollection).Add (pdef);
                         }
                         member = methref;
                     }
@@ -613,7 +619,7 @@
             case ElementType.SzArray :
                 SZARRAY szary = t as SZARRAY;
                 ArrayType at = new ArrayType (GetTypeRefFromSig (szary.Type));
-                at.Dimensions.Add (new ArrayDimension (0, 0));
+                (at.Dimensions as ArrayDimensionCollection).Add (new 
ArrayDimension (0, 0));
                 return at;
             case ElementType.Ptr :
                 PTR pointer = t as PTR;

Modified: trunk/cecil/lib/Mono.Cecil.Implem/StructureReader.cs
===================================================================
--- trunk/cecil/lib/Mono.Cecil.Implem/StructureReader.cs        2005-02-25 
22:12:32 UTC (rev 41221)
+++ trunk/cecil/lib/Mono.Cecil.Implem/StructureReader.cs        2005-02-25 
22:52:47 UTC (rev 41222)
@@ -74,7 +74,7 @@
                         new Version (arefrow.MajorVersion, 
arefrow.MinorVersion,
                                      arefrow.BuildNumber, 
arefrow.RevisionNumber));
                     aname.PublicKeyToken = 
m_img.MetadataRoot.Streams.BlobHeap.Read (arefrow.PublicKeyOrToken);
-                    names [aname.Name] = aname;
+                    (names as AssemblyNameReferenceCollection).Add (aname);
                 }
             }
         }
@@ -91,7 +91,7 @@
                     EmbeddedResource er = new EmbeddedResource (
                         m_img.MetadataRoot.Streams.StringsHeap [mrr.Name], 
mrr.Flags);
 
-                    resources [er.Name] = er;
+                    (resources as ResourceCollection) [er.Name] = er;
                 }
             }
 
@@ -106,7 +106,7 @@
 
                         lr.Hash = m_img.MetadataRoot.Streams.BlobHeap.Read 
(fr.HashValue);
 
-                        resources [lr.Name] = lr;
+                        (resources as ResourceCollection) [lr.Name] = lr;
                     }
                 }
             }
@@ -133,8 +133,10 @@
             ModuleRow mr = mt.Rows [0] as ModuleRow;
             string name = m_img.MetadataRoot.Streams.StringsHeap [mr.Name];
             ModuleDefinition main = new ModuleDefinition (name, m_asmDef, 
m_ir, true);
+            ModuleDefinitionCollection mods = modules as 
ModuleDefinitionCollection;
             main.Mvid = m_img.MetadataRoot.Streams.GuidHeap [mr.Mvid];
-            modules [name] = m_module = main;
+            mods.Add (main);
+            m_module = main;
 
             FileTable ftable = m_img.MetadataRoot.Streams.TablesHeap 
[typeof(FileTable)] as FileTable;
             if (ftable != null && ftable.Rows.Count > 0) {
@@ -155,7 +157,7 @@
                             ModuleDefinition modext = new ModuleDefinition 
(name, m_asmDef, module, false);
                             modext.Mvid = 
module.Image.MetadataRoot.Streams.GuidHeap [mr.Mvid];
 
-                            modules [name] = modext;
+                            mods.Add (modext);
                         } catch (ReflectionException) {
                             throw;
                         } catch (Exception e) {
@@ -176,7 +178,7 @@
             ModuleRefTable mrt = 
mod.Reader.Image.MetadataRoot.Streams.TablesHeap [typeof(ModuleRefTable)] as 
ModuleRefTable;
             if (mrt != null && mrt.Rows.Count > 0)
                 foreach (ModuleRefRow mrr in mrt.Rows)
-                    modules.Add (new ModuleReference 
(m_img.MetadataRoot.Streams.StringsHeap [mrr.Name]));
+                    (modules as ModuleReferenceCollection).Add (new 
ModuleReference (m_img.MetadataRoot.Streams.StringsHeap [mrr.Name]));
         }
     }
 }

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

Reply via email to