public SvgElement[] Redo() { ArrayList list1 = new ArrayList(0x10); if (this.redostack.Count > 0) { IUndoOperation[] operationArray1 = (IUndoOperation[])this.redostack.Pop(); this.AcceptChanges = false; IUndoOperation[] operationArray2 = operationArray1; for (int num1 = 0; num1 < operationArray2.Length; num1++) { IUndoOperation operation1 = operationArray2[num1]; SvgElement element1 = null; if (operation1 is UnDoOperation) { element1 = ((UnDoOperation)operation1).changeParent; } else if (operation1 is KeyUndoOperation) { element1 = ((KeyUndoOperation)operation1).ChangeElement; } if (!list1.Contains(element1)) { list1.Add(element1); } operation1.Redo(); } Array.Reverse(operationArray1); this.undostack.Push(operationArray1); this.OnActionRedone(); this.AcceptChanges = true; } if (list1.Count > 0) { SvgElement[] elementArray1 = new SvgElement[list1.Count]; list1.CopyTo(elementArray1); return(elementArray1); } return(null); }