fix sorting and linked list bugs
This commit is contained in:
parent
37736ab316
commit
6fb58200b1
@ -401,19 +401,16 @@ Index =
|
|||||||
return
|
return
|
||||||
|
|
||||||
sortOnTop: (match) ->
|
sortOnTop: (match) ->
|
||||||
offset = 0
|
|
||||||
{sortedNodes} = Index
|
{sortedNodes} = Index
|
||||||
threadRoot = sortedNodes.first
|
threadRoot = target = sortedNodes.first
|
||||||
while threadRoot
|
while threadRoot
|
||||||
|
{next} = threadRoot
|
||||||
if match Get.threadFromRoot threadRoot.data
|
if match Get.threadFromRoot threadRoot.data
|
||||||
target = sortedNodes.first
|
if threadRoot is target
|
||||||
j = 0
|
|
||||||
while j++ < offset
|
|
||||||
target = target.next
|
target = target.next
|
||||||
unless threadRoot is target
|
else
|
||||||
offset++
|
|
||||||
sortedNodes.before target, threadRoot
|
sortedNodes.before target, threadRoot
|
||||||
threadRoot = threadRoot.next
|
threadRoot = next
|
||||||
return
|
return
|
||||||
|
|
||||||
buildIndex: ->
|
buildIndex: ->
|
||||||
|
|||||||
@ -29,7 +29,10 @@ class RandomAccessList
|
|||||||
root.prev = item
|
root.prev = item
|
||||||
item.next = root
|
item.next = root
|
||||||
item.prev = prev
|
item.prev = prev
|
||||||
prev.next = item if prev
|
if prev
|
||||||
|
prev.next = item
|
||||||
|
else
|
||||||
|
@first = item
|
||||||
|
|
||||||
after: (root, item) ->
|
after: (root, item) ->
|
||||||
return if item.prev is root
|
return if item.prev is root
|
||||||
@ -40,14 +43,20 @@ class RandomAccessList
|
|||||||
root.next = item
|
root.next = item
|
||||||
item.prev = root
|
item.prev = root
|
||||||
item.next = next
|
item.next = next
|
||||||
next.prev = item if next
|
if next
|
||||||
|
next.prev = item
|
||||||
|
else
|
||||||
|
@last = item
|
||||||
|
|
||||||
prepend: (item) ->
|
prepend: (item) ->
|
||||||
{first} = @
|
{first} = @
|
||||||
return if item is first or not @[item.ID]
|
return if item is first or not @[item.ID]
|
||||||
@rmi item
|
@rmi item
|
||||||
item.next = first
|
item.next = first
|
||||||
first.prev = item
|
if first
|
||||||
|
first.prev = item
|
||||||
|
else
|
||||||
|
@last = item
|
||||||
@first = item
|
@first = item
|
||||||
delete item.prev
|
delete item.prev
|
||||||
|
|
||||||
@ -77,4 +86,4 @@ class RandomAccessList
|
|||||||
if next
|
if next
|
||||||
next.prev = prev
|
next.prev = prev
|
||||||
else
|
else
|
||||||
@last = prev
|
@last = prev
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user