fix sorting and linked list bugs

This commit is contained in:
ccd0 2014-06-14 20:16:45 -07:00
parent 37736ab316
commit 6fb58200b1
2 changed files with 18 additions and 12 deletions

View File

@ -401,19 +401,16 @@ Index =
return
sortOnTop: (match) ->
offset = 0
{sortedNodes} = Index
threadRoot = sortedNodes.first
threadRoot = target = sortedNodes.first
while threadRoot
{next} = threadRoot
if match Get.threadFromRoot threadRoot.data
target = sortedNodes.first
j = 0
while j++ < offset
if threadRoot is target
target = target.next
unless threadRoot is target
offset++
else
sortedNodes.before target, threadRoot
threadRoot = threadRoot.next
threadRoot = next
return
buildIndex: ->

View File

@ -29,7 +29,10 @@ class RandomAccessList
root.prev = item
item.next = root
item.prev = prev
prev.next = item if prev
if prev
prev.next = item
else
@first = item
after: (root, item) ->
return if item.prev is root
@ -40,14 +43,20 @@ class RandomAccessList
root.next = item
item.prev = root
item.next = next
next.prev = item if next
if next
next.prev = item
else
@last = item
prepend: (item) ->
{first} = @
return if item is first or not @[item.ID]
@rmi item
item.next = first
first.prev = item
if first
first.prev = item
else
@last = item
@first = item
delete item.prev
@ -77,4 +86,4 @@ class RandomAccessList
if next
next.prev = prev
else
@last = prev
@last = prev