From b7b2e1dd7933e9b83919be5396aa4c7c3aa06c73 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Mon, 19 Jun 2023 09:43:45 +0800 Subject: [PATCH] fix add method --- src/Utils/IdsLinkedList.cs | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/Utils/IdsLinkedList.cs b/src/Utils/IdsLinkedList.cs index e6675d5..49331bc 100644 --- a/src/Utils/IdsLinkedList.cs +++ b/src/Utils/IdsLinkedList.cs @@ -52,26 +52,16 @@ namespace DCFApixels.DragonECS.Relations.Utils /// new node index public int InsertAfter(int nodeIndex, int value) { - int newNodeIndex; - if (_recycledNodesCount > 0) - { - newNodeIndex = _recycledNodes[--_recycledNodesCount]; - _count++; - } - else - { - newNodeIndex = ++_count; - } + _count++; + int newNodeIndex = _recycledNodesCount > 0 ? _recycledNodes[--_recycledNodesCount] : _count; ref Node prevNode = ref _nodes[nodeIndex]; ref Node nextNode = ref _nodes[prevNode.next]; - _nodes[newNodeIndex].Set(value, nextNode.prev, prevNode.next); - prevNode.next = newNodeIndex; nextNode.prev = newNodeIndex; - - _lastNodeIndex = newNodeIndex; + if(prevNode.next == 0) + _lastNodeIndex = newNodeIndex; return newNodeIndex; } //public int InsertBefore(int nodeIndex, int value) { } @@ -84,8 +74,6 @@ namespace DCFApixels.DragonECS.Relations.Utils _nodes[node.next].prev = node.prev; _nodes[node.prev].next = node.next; - // node = Node.Empty; - if (_recycledNodesCount >= _recycledNodes.Length) Array.Resize(ref _recycledNodes, _recycledNodes.Length << 1); _recycledNodes[_recycledNodesCount++] = nodeIndex;