|
@@ -1,25 +1,25 @@
|
1
|
1
|
import strscans
|
2
|
2
|
|
3
|
3
|
type
|
4
|
|
- Marble = ref object
|
5
|
|
- next, prev: Marble
|
6
|
|
- value: int
|
|
4
|
+ Marble = object
|
|
5
|
+ next, prev: ptr Marble
|
|
6
|
+ value: int32
|
7
|
7
|
|
8
|
|
-func insertAfter(node: Marble, value: int) {.inline.} =
|
9
|
|
- var newNode = new(Marble)
|
10
|
|
- newNode.value = value
|
|
8
|
+proc insertAfter(node: ptr Marble, value: int) {.inline.} =
|
|
9
|
+ var newNode = cast[ptr Marble](alloc0(sizeof(Marble)))
|
|
10
|
+ newNode.value = cast[int32](value)
|
11
|
11
|
newNode.next = node.next
|
12
|
12
|
newNode.prev = node
|
13
|
13
|
newNode.next.prev = newNode
|
14
|
14
|
newNode.prev.next = newNode
|
15
|
15
|
|
16
|
|
-func remove(node: Marble) {.inline.} =
|
|
16
|
+proc remove(node: ptr Marble) {.inline.} =
|
17
|
17
|
node.prev.next = node.next
|
18
|
18
|
node.next.prev = node.prev
|
19
|
19
|
|
20
|
|
-func newSingleNode(value: int): Marble =
|
21
|
|
- result = new(Marble)
|
22
|
|
- result.value = value
|
|
20
|
+proc newSingleNode(value: int): ptr Marble =
|
|
21
|
+ result = cast[ptr Marble](alloc0(sizeof(Marble)))
|
|
22
|
+ result.value = cast[int32](value)
|
23
|
23
|
result.next = result
|
24
|
24
|
result.prev = result
|
25
|
25
|
|