public void InsertPrevious(InRomNode node) { if (PreviousNodeAddress == null) { PreviousNodeAddress = node.Address; if (node.NextNodeAdress != Address) { node.InsertNext(this); } } else { var previousNode = Load <InRomNode>(PreviousNodeAddress); node.PreviousNodeAddress = previousNode.Address; PreviousNodeAddress = node.Address; if (previousNode.NextNodeAdress != node.Address) { previousNode.InsertNext(node); } } }
public void InsertNext(InRomNode node) { if (NextNodeAdress == null) { NextNodeAdress = node.Address; if (node.PreviousNodeAddress != Address) { node.InsertPrevious(this); } } else { var nextNode = Load <InRomNode>(NextNodeAdress); node.NextNodeAdress = nextNode.Address; NextNodeAdress = node.Address; if (nextNode.PreviousNodeAddress != node.Address) { nextNode.InsertPrevious(node); } } }