예제 #1
0
 public VMValue_arrayinst(int guid, int size, CILVariable elementType, VMValueManager valueManager)
     : base(guid)
 {
     this.elementType = elementType;
     data = new int[size];
     for(int i = 0; i < size; i++)
         data[i] = valueManager.MakeValue(elementType).GUID;
 }
예제 #2
0
        public VMValue_objectinst(int guid, VMValueManager valueFactory, CILClass classType)
            : base(guid)
        {
            this.classType = classType;
            this.holdingLockThreadID = -1;
            this.holdingLockCount = 0;

            IEnumerator iter = classType.GetFieldEnumerator();
            while(iter.MoveNext())
            {
                CILClassField field = (CILClassField)iter.Current;
                if(field.IsStatic == false)
                {
                    VMValue f = valueFactory.MakeValue(field.Variable);
                    f.IsConcrete = true;
                    fields.Add(f.GUID);
                }
            }
        }