Mono.CSharp.VariableInfo.SetStructFieldAssigned C# (CSharp) Method

SetStructFieldAssigned() public method

public SetStructFieldAssigned ( DefiniteAssignmentBitSet vector, string field_name ) : void
vector DefiniteAssignmentBitSet
field_name string
return void
		public void SetStructFieldAssigned (DefiniteAssignmentBitSet vector, string field_name)
		{
			if (vector [Offset])
				return;

			int field_idx = TypeInfo.GetFieldIndex (field_name);

			if (field_idx == 0)
				return;

			var complex_field = TypeInfo.GetStructField (field_name);
			if (complex_field != null) {
				vector.Set (Offset + complex_field.Offset, complex_field.TotalLength);
			} else {
				vector.Set (Offset + field_idx);
			}

			IsEverAssigned = true;

			//
			// Each field must be assigned before setting master bit
			//
			for (int i = Offset + 1; i < TypeInfo.TotalLength + Offset; i++) {
				if (!vector[i])
					return;
			}

			//
			// Set master struct flag to assigned when all tested struct
			// fields have been assigned
			//
			vector.Set (Offset);
		}

Usage Example

Example #1
0
 public void SetStructFieldAssigned(VariableInfo variable, string name)
 {
     variable.SetStructFieldAssigned(DefiniteAssignment, name);
 }
All Usage Examples Of Mono.CSharp.VariableInfo::SetStructFieldAssigned