X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Reflection.Emit%2FMethodBuilder.cs;h=87c7965060e508144f74c03d7ad367b8494f9868;hb=4db2302d083f3798bafe52fefe2577bd2f82e4e7;hp=6d652af27055c558b151c865a63da2ca28e1ad26;hpb=91c673fd99f3dd353e03dfd792c43e977c55b48a;p=mono.git diff --git a/mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs b/mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs index 6d652af2705..87c7965060e 100755 --- a/mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs +++ b/mcs/class/corlib/System.Reflection.Emit/MethodBuilder.cs @@ -7,6 +7,29 @@ // (C) 2001 Ximian, Inc. http://www.ximian.com // +// +// Copyright (C) 2004 Novell, Inc (http://www.novell.com) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + using System; using System.Reflection; using System.Reflection.Emit; @@ -38,6 +61,7 @@ namespace System.Reflection.Emit { private CallingConvention native_cc; private CallingConventions call_conv; private bool init_locals = true; + private IntPtr generic_container; #if NET_2_0 || BOOTSTRAP_NET_2_0 private GenericTypeParameterBuilder[] generic_params; #else @@ -127,6 +151,8 @@ namespace System.Reflection.Emit { return iattrs; } public override ParameterInfo[] GetParameters() { + if (!type.is_created) + throw NotSupported (); if (parameters == null) return null; @@ -194,14 +220,14 @@ namespace System.Reflection.Emit { public ParameterBuilder DefineParameter (int position, ParameterAttributes attributes, string strParamName) { + RejectIfCreated (); + // // Extension: Mono allows position == 0 for the return attribute // if ((position < 0) || (position > parameters.Length)) throw new ArgumentOutOfRangeException ("position"); - RejectIfCreated (); - ParameterBuilder pb = new ParameterBuilder (this, position, attributes, strParamName); if (pinfo == null) pinfo = new ParameterBuilder [parameters.Length + 1]; @@ -289,12 +315,24 @@ namespace System.Reflection.Emit { throw new NotImplementedException (); } - public override string ToString() { + public override string ToString() + { return "MethodBuilder [" + type.Name + "::" + name + "]"; } + [MonoTODO] + public override bool Equals (object obj) + { + return base.Equals (obj); + } + + public override int GetHashCode () + { + return name.GetHashCode (); + } + internal override int get_next_table_index (object obj, int table, bool inc) { - return type.get_next_table_index (obj, table, inc); + return type.get_next_table_index (obj, table, inc); } internal void set_override (MethodInfo mdecl) {