Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
authorPaolo Molaro <lupus@oddwiz.org>
Thu, 5 Jun 2003 18:26:59 +0000 (18:26 -0000)
committerPaolo Molaro <lupus@oddwiz.org>
Thu, 5 Jun 2003 18:26:59 +0000 (18:26 -0000)
* AssemblyBuilder.cs: implemented DefineResource ().

svn path=/trunk/mcs/; revision=15135

mcs/class/corlib/System.Reflection.Emit/AssemblyBuilder.cs
mcs/class/corlib/System.Reflection.Emit/ChangeLog

index 2ac09311632b35cb4fcdec7ab87bc748cd09076b..0fc601b3178c5b96412970fd435c2de8f2dc25f0 100755 (executable)
@@ -49,6 +49,7 @@ namespace System.Reflection.Emit {
                internal Type corlib_void_type = typeof (void);
                private int[] table_indexes;
                Hashtable us_string_cache = new Hashtable ();
+               ArrayList resource_writers = null;
 
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                private static extern void basic_init (AssemblyBuilder ab);
@@ -195,7 +196,15 @@ namespace System.Reflection.Emit {
                public IResourceWriter DefineResource (string name, string description,
                                                       string fileName, ResourceAttributes attribute)
                {
-                       return null;
+                       IResourceWriter writer;
+
+                       // description seems to be ignored
+                       AddResourceFile (name, fileName, attribute);
+                       writer = new ResourceWriter (fileName);
+                       if (resource_writers == null)
+                               resource_writers = new ArrayList ();
+                       resource_writers.Add (writer);
+                       return writer;
                }
 
                public void DefineUnmanagedResource (byte[] resource)
@@ -299,6 +308,13 @@ namespace System.Reflection.Emit {
                        FileStream file;
                        int count, offset;
 
+                       if (resource_writers != null) {
+                               foreach (IResourceWriter writer in resource_writers) {
+                                       writer.Generate ();
+                                       writer.Close ();
+                               }
+                       }
+
                        build_metadata (this);
 
                        foreach (ModuleBuilder module in modules)
index 81a9b1f78d6113f7963fbb7c824a5ecb19e9dbc0..334953ac6fe25dffffb405390d63e27219855547 100644 (file)
@@ -1,4 +1,8 @@
 
+Thu Jun 5 20:18:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * AssemblyBuilder.cs: implemented DefineResource ().
+
 Thu Jun 5 12:36:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
 
        * OpCode.cs: implemented Equals/GetHashCode.