Set svn:eol-style=native, delete svn:executable.
[mono.git] / mcs / class / corlib / System.Reflection.Emit / MethodBuilder.cs
old mode 100755 (executable)
new mode 100644 (file)
index eb58c5e..4c1c11d
@@ -87,6 +87,10 @@ namespace System.Reflection.Emit {
                        if ((attributes & MethodAttributes.Static) == 0)
                                this.call_conv |= CallingConventions.HasThis;
                        if (parameterTypes != null) {
+                               for (int i = 0; i < parameterTypes.Length; ++i)
+                                       if (parameterTypes [i] == null)
+                                               throw new ArgumentException ("Elements of the parameterTypes array cannot be null", "parameterTypes");
+
                                this.parameters = new Type [parameterTypes.Length];
                                System.Array.Copy (parameterTypes, this.parameters, parameterTypes.Length);
                        }
@@ -251,7 +255,7 @@ namespace System.Reflection.Emit {
 
                internal void fixup () {
                        if (((attrs & (MethodAttributes.Abstract | MethodAttributes.PinvokeImpl)) == 0) && ((iattrs & (MethodImplAttributes.Runtime | MethodImplAttributes.InternalCall)) == 0)) {
-                               if ((ilgen == null) || (ILGenerator.Mono_GetCurrentOffset (ilgen) == 0))
+                               if (((ilgen == null) || (ILGenerator.Mono_GetCurrentOffset (ilgen) == 0)) && (code == null))
                                        throw new InvalidOperationException ("Method '" + Name + "' does not have a method body.");
                        }
                        if (ilgen != null)