2005-03-09 Marek Safar <marek.safar@seznam.cz>
authorMarek Safar <marek.safar@gmail.com>
Wed, 9 Mar 2005 08:28:31 +0000 (08:28 -0000)
committerMarek Safar <marek.safar@gmail.com>
Wed, 9 Mar 2005 08:28:31 +0000 (08:28 -0000)
* ILGenerator.cs (DeclareLocal): Throw an exception for null argument.

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

mcs/class/corlib/System.Reflection.Emit/ChangeLog
mcs/class/corlib/System.Reflection.Emit/ILGenerator.cs
mcs/class/corlib/Test/System.Reflection.Emit/ChangeLog
mcs/class/corlib/Test/System.Reflection.Emit/ILGeneratorTest.cs [new file with mode: 0644]
mcs/class/corlib/corlib_test.dll.sources

index 9f5acbcc8e14a212be1ee3eee43c49fc1c49c7db..d5376323009867502cc165ccdbec14768a009d6a 100644 (file)
@@ -1,3 +1,7 @@
+2005-03-09  Marek Safar  <marek.safar@seznam.cz>
+
+       * ILGenerator.cs (DeclareLocal): Throw an exception for null argument.\r
+\r
 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
 
        * CustomAttributeBuilder.cs UnmanagedMarshal.cs: Allow sizeConst and
index b99186888fde6e57f31ef2f1b953d679ecf54171..e612e6cb1aaeea5cb20e46e18c801ab722dc12bb 100644 (file)
@@ -405,6 +405,9 @@ namespace System.Reflection.Emit {
 #endif
                LocalBuilder DeclareLocal (Type localType, bool pinned)
                {
+                       if (localType == null)
+                               throw new ArgumentNullException ("localType");
+
                        LocalBuilder res = new LocalBuilder (localType, this);
                        res.is_pinned = pinned;
                        
index 0018c732c85d4ba9eb7e0d182ed11ec14a4b299b..2ee2e9602ba0f8570a43c32d487adc1605d2cc3a 100644 (file)
@@ -1,3 +1,7 @@
+2005-03-09  Marek Safar  <marek.safar@seznam.cz>
+\r
+       * ILGeneratorTest.cs: New test file.\r
+\r
 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
 
        * TypeBuilderTest.cs: Disable last test since the fix is reverted.
diff --git a/mcs/class/corlib/Test/System.Reflection.Emit/ILGeneratorTest.cs b/mcs/class/corlib/Test/System.Reflection.Emit/ILGeneratorTest.cs
new file mode 100644 (file)
index 0000000..c80a736
--- /dev/null
@@ -0,0 +1,47 @@
+//
+// ILGeneratorTest.cs - NUnit Test Cases for the ILGenerator class
+//
+// Marek Safar (marek.safar@seznam.cz)
+//
+// (C) Novell, Inc.  http://www.novell.com
+
+using System;
+using System.Reflection;
+using System.Reflection.Emit;
+using System.Threading;
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Reflection.Emit {
+
+       [TestFixture]
+       public class ILGeneratorTest {
+
+               ILGenerator il_gen;
+
+               [SetUp]
+               public void SetUp ()
+               {
+                       AssemblyName assemblyName = new AssemblyName ();
+                       assemblyName.Name = "MonoTests.System.Reflection.Emit.ILGeneratorTest";
+
+                       AssemblyBuilder assembly = Thread.GetDomain ().DefineDynamicAssembly (
+                               assemblyName, AssemblyBuilderAccess.Run);
+
+                       ModuleBuilder module = assembly.DefineDynamicModule ("module1");
+                       TypeBuilder _tb = module.DefineType ("GetType", TypeAttributes.Public);
+
+                       MethodBuilder myMethod = _tb.DefineMethod("Function1",
+                               MethodAttributes.Public, typeof(String), null);
+
+                       il_gen = myMethod.GetILGenerator();
+               }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void DeclareLocal_NULL ()
+               {
+                       il_gen.DeclareLocal (null);
+               }
+       }
+}
index b89d3306a8c452d14777602987b6cdb6b4c2bad1..c5356ef270897d64412a5b98022156106f976735 100755 (executable)
@@ -100,7 +100,8 @@ System.Reflection.Emit/ConstructorBuilderTest.cs
 System.Reflection.Emit/CustomAttributeBuilderTest.cs
 System.Reflection.Emit/EnumBuilderTest.cs
 System.Reflection.Emit/EventBuilderTest.cs
-System.Reflection.Emit/FieldBuilderTest.cs
+System.Reflection.Emit/FieldBuilderTest.cs\r
+System.Reflection.Emit/ILGeneratorTest.cs
 System.Reflection.Emit/MethodBuilderTest.cs
 System.Reflection.Emit/MethodRentalTest.cs
 System.Reflection.Emit/ModuleBuilderTest.cs