2008-01-06 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Sun, 6 Jan 2008 21:40:52 +0000 (21:40 -0000)
committerZoltan Varga <vargaz@gmail.com>
Sun, 6 Jan 2008 21:40:52 +0000 (21:40 -0000)
* AppDomain.cs: Move the assembly loading in ExecuteAssembly and
ExecuteAssemblyByName to managed to as said by the MSDN docs. Fixes #350530.

* Environment.cs: Bump corlib version.

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

mcs/class/corlib/System/AppDomain.cs
mcs/class/corlib/System/ChangeLog
mcs/class/corlib/System/Environment.cs

index a57d748923d7e7ebc793d8745cc0a10468ac2956..4777457f85dfddc1cdfc6a9dfbb05c6668f3325e 100644 (file)
@@ -504,14 +504,20 @@ namespace System {
                        return ExecuteAssembly (assemblyFile, assemblySecurity, null);
                }
 
-               [MethodImplAttribute (MethodImplOptions.InternalCall)]
-               public extern int ExecuteAssembly (string assemblyFile, Evidence assemblySecurity, string[] args);
+               public int ExecuteAssembly (string assemblyFile, Evidence assemblySecurity, string[] args)
+               {
+                       Assembly a = Assembly.LoadFrom (assemblyFile, assemblySecurity);
+                       return ExecuteAssembly (a, args);
+               }
 
-               [MonoTODO ("No support for ExecuteAssembly")]
                public int ExecuteAssembly (string assemblyFile, Evidence assemblySecurity, string[] args, byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm)
                {
-                       throw new NotImplementedException ();
+                       Assembly a = Assembly.LoadFrom (assemblyFile, assemblySecurity, hashValue, hashAlgorithm);
+                       return ExecuteAssembly (a, args);
                }
+
+               [MethodImplAttribute (MethodImplOptions.InternalCall)]
+               private extern int ExecuteAssembly (Assembly a, string[] args);
                
                [MethodImplAttribute (MethodImplOptions.InternalCall)]
                private extern Assembly [] GetAssemblies (bool refOnly);
@@ -1166,35 +1172,28 @@ namespace System {
                        return CreateDomain (friendlyName, securityInfo, appBasePath, appRelativeSearchPath, shadowCopy);
                }
 
-               [MonoTODO ("resolve assemblyName to location")]
                public int ExecuteAssemblyByName (string assemblyName)
                {
                        return ExecuteAssemblyByName (assemblyName, null, null);
                }
 
-               [MonoTODO ("resolve assemblyName to location")]
                public int ExecuteAssemblyByName (string assemblyName, Evidence assemblySecurity)
                {
                        return ExecuteAssemblyByName (assemblyName, assemblySecurity, null);
                }
 
-               [MonoTODO ("resolve assemblyName to location")]
                public int ExecuteAssemblyByName (string assemblyName, Evidence assemblySecurity, params string[] args)
                {
-                       if (assemblyName == null)
-                               throw new ArgumentNullException ("assemblyName");
+                       Assembly a = Assembly.Load (assemblyName, assemblySecurity);
 
-                       AssemblyName an = new AssemblyName (assemblyName);
-                       return ExecuteAssemblyByName (an, assemblySecurity, args);
+                       return ExecuteAssembly (a, args);
                }
 
-               [MonoTODO ("assemblyName may not have a codebase")]
                public int ExecuteAssemblyByName (AssemblyName assemblyName, Evidence assemblySecurity, params string[] args)
                {
-                       if (assemblyName == null)
-                               throw new ArgumentNullException ("assemblyName");
+                       Assembly a = Assembly.Load (assemblyName, assemblySecurity);
 
-                       return ExecuteAssembly (assemblyName.CodeBase, assemblySecurity, args);
+                       return ExecuteAssembly (a, args);
                }
 
                public bool IsDefaultAppDomain ()
index 635798dcbb2e905f14e3355aa27e152ad727b70f..f7b8c1bfd53e447f8eca457c47736ae1c143418b 100644 (file)
@@ -1,3 +1,10 @@
+2008-01-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * AppDomain.cs: Move the assembly loading in ExecuteAssembly and 
+       ExecuteAssemblyByName to managed to as said by the MSDN docs. Fixes #350530.
+
+       * Environment.cs: Bump corlib version.
+       
 2008-01-02  Marek Habersack  <mhabersack@novell.com>
 
        * Array.cs: fix a typo to unbreak the build.
index 6eafa4d92a00f9842283bd336d01cc3221c84848..9e09405938ee1a0f981eeb0bddb8becc0c916dfc 100644 (file)
@@ -63,7 +63,7 @@ namespace System {
                 * Changes which are already detected at runtime, like the addition
                 * of icalls, do not require an increment.
                 */
-               private const int mono_corlib_version = 64;
+               private const int mono_corlib_version = 65;
                
                public enum SpecialFolder
                {       // TODO: Determine if these windoze style folder identifiers