Mono.CSharp.FixedField.Emit C# (CSharp) Method

Emit() public method

public Emit ( ) : void
return void
		public override void Emit()
		{
			ResolveContext rc = new ResolveContext (this);
			IntConstant buffer_size_const = initializer.Resolve (rc) as IntConstant;
			if (buffer_size_const == null)
				return;

			int buffer_size = buffer_size_const.Value;

			if (buffer_size <= 0) {
				Report.Error (1665, Location, "`{0}': Fixed size buffers must have a length greater than zero", GetSignatureForError ());
				return;
			}

			EmitFieldSize (buffer_size);

#if STATIC
			if (Module.HasDefaultCharSet)
				fixed_buffer_type.__SetAttributes (fixed_buffer_type.Attributes | Module.DefaultCharSetType);
#endif

			Module.PredefinedAttributes.UnsafeValueType.EmitAttribute (fixed_buffer_type);
			Module.PredefinedAttributes.CompilerGenerated.EmitAttribute (fixed_buffer_type);
			fixed_buffer_type.CreateType ();

			base.Emit ();
		}