public static SZArraySignature AsSZArray(this MetadataRecord record) { return(new SZArraySignature() { ElementType = record }); }
public static void Write(this NativeWriter writer, MetadataRecord record) { if (record != null) writer.WriteUnsigned((uint)record.HandleType | (uint)(record.HandleOffset << 8)); else writer.WriteUnsigned(0); }
public void Push(MetadataRecord item) { if (_size == _array.Length) { Array.Resize(ref _array, 2 * _array.Length); } _array[_size++] = item; }
public int GetRecordHandle(MetadataRecord rec) { var realRec = _visitor.MapToPooledRecord(rec); Debug.Assert(realRec.Handle.Offset != 0); return(realRec.Handle._value); }
public MetadataRecord Pop() { if (_size == 0) { throw new InvalidOperationException(); } MetadataRecord record = _array[--_size]; _array[_size] = null; return(record); }
public bool Contains(MetadataRecord item) { int count = _size; while (count-- > 0) { // Important: we use ReferenceEquals because this method will be called from Equals() // on 'record'. This is also why we can't use System.Collections.Generic.Stack. if (Object.ReferenceEquals(item, _array[count])) { return(true); } } return(false); }
// All visits come to here for every child. Here we simply print the handle as hex. public void Log(MetadataRecord rec) { if (rec == null) { return; } if (_notFirst) { _logWriter.Write(" "); } else { _notFirst = true; } _logWriter.Write(rec.Handle._value.ToString("x")); }
private static bool IsConstantArray(MetadataRecord rec) { switch (rec.HandleType) { case HandleType.ConstantBooleanArray: case HandleType.ConstantCharArray: case HandleType.ConstantStringArray: case HandleType.ConstantByteArray: case HandleType.ConstantSByteArray: case HandleType.ConstantInt16Array: case HandleType.ConstantUInt16Array: case HandleType.ConstantInt32Array: case HandleType.ConstantUInt32Array: case HandleType.ConstantInt64Array: case HandleType.ConstantUInt64Array: case HandleType.ConstantSingleArray: case HandleType.ConstantDoubleArray: return(true); default: return(false); } }
public bool ContainsVertex(MetadataRecord v) { return(_vertices.Contains(v)); }
// private Dictionary<MetadataRecord, HashSet<Edge>> _edges = new Dictionary<MetadataRecord, HashSet<Edge>>(); public void AddVertex(MetadataRecord v) { _vertices.Add(v); }
public Edge(MetadataRecord source, MetadataRecord target) { Source = source; Target = target; }