Beispiel #1
0
 public static SZArraySignature AsSZArray(this MetadataRecord record)
 {
     return(new SZArraySignature()
     {
         ElementType = record
     });
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 public void Push(MetadataRecord item)
 {
     if (_size == _array.Length)
     {
         Array.Resize(ref _array, 2 * _array.Length);
     }
     _array[_size++] = item;
 }
Beispiel #4
0
        public int GetRecordHandle(MetadataRecord rec)
        {
            var realRec = _visitor.MapToPooledRecord(rec);

            Debug.Assert(realRec.Handle.Offset != 0);

            return(realRec.Handle._value);
        }
Beispiel #5
0
        public MetadataRecord Pop()
        {
            if (_size == 0)
            {
                throw new InvalidOperationException();
            }
            MetadataRecord record = _array[--_size];

            _array[_size] = null;
            return(record);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
 // 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"));
 }
Beispiel #8
0
        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);
            }
        }
Beispiel #9
0
 public bool ContainsVertex(MetadataRecord v)
 {
     return(_vertices.Contains(v));
 }
Beispiel #10
0
        // private Dictionary<MetadataRecord, HashSet<Edge>> _edges = new Dictionary<MetadataRecord, HashSet<Edge>>();

        public void AddVertex(MetadataRecord v)
        {
            _vertices.Add(v);
        }
Beispiel #11
0
 public Edge(MetadataRecord source, MetadataRecord target)
 {
     Source = source;
     Target = target;
 }