+
+ public void SetCustomAttribute( CustomAttributeBuilder customBuilder) {
+ string attrname = customBuilder.Ctor.ReflectedType.FullName;
+ if (attrname == "System.Runtime.CompilerServices.MethodImplAttribute") {
+ byte[] data = customBuilder.Data;
+ int impla; // the (stupid) ctor takes a short or an int ...
+ impla = (int)data [2];
+ impla |= ((int)data [3]) << 8;
+ SetImplementationFlags ((MethodImplAttributes)impla);
+ return;
+ }
+ if (cattrs != null) {
+ CustomAttributeBuilder[] new_array = new CustomAttributeBuilder [cattrs.Length + 1];
+ cattrs.CopyTo (new_array, 0);
+ new_array [cattrs.Length] = customBuilder;
+ cattrs = new_array;
+ } else {
+ cattrs = new CustomAttributeBuilder [1];
+ cattrs [0] = customBuilder;
+ }
+ }
+ public void SetCustomAttribute( ConstructorInfo con, byte[] binaryAttribute) {
+ SetCustomAttribute (new CustomAttributeBuilder (con, binaryAttribute));
+ }
+ public void SetImplementationFlags( MethodImplAttributes attributes) {
+ iattrs = attributes;
+ }
+ internal override int get_next_table_index (object obj, int table, bool inc) {
+ return type.get_next_table_index (obj, table, inc);
+ }
+
+ internal void set_override (MethodInfo mdecl) {
+ override_method = mdecl;
+ }