public override bool Equals(object o) { if (GetType() != o.GetType()) { return(false); } PointerToElementValue ptr = o as PointerToElementValue; return(arr == ptr.arr && index == ptr.index); }
public override bool IsLessThan(ReferenceValue obj) { bool result; if (obj is PointerToElementValue) { PointerToElementValue ptr = obj as PointerToElementValue; result = arr == ptr.arr && index < ptr.index; } else { result = false; } return(result); }
protected override void VisitStoreElement(StoreElement downNode, object o) { StructValue idx = this.state.Stack.Pop() as StructValue; ObjectReferenceValue arr = this.state.Stack.Pop() as ObjectReferenceValue; PointerValue ptr = new PointerToElementValue(arr.Obj as Array, SpecializingVisitor.toInt(idx)); this.storeVar(downNode, ptr, o); }