on master help sign in
Fix insertion into C heap.
6b4cb6fMatus Tejiscak
rts/idris_heap.c+6−2
@@ -44,10 +44,14 @@ void c_heap_insert_if_needed(CHeap * heap, CHeapItem * item)
44{
44{
45 if (item->prev_next != NULL) return; // already inserted
45 if (item->prev_next != NULL) return; // already inserted
46
46
47+ if (heap->first != NULL)
48+ {
47− heap->first->prev_next = &item->next;
49+ heap->first->prev_next = &item->next;
48− item->prev_next = &heap->first;
50+ }
49
51
52+ item->prev_next = &heap->first;
50 item->next = heap->first;
53 item->next = heap->first;
54+
51 heap->first = item;
55 heap->first = item;
52}
56}
53
57