Lines Matching +full:i +full:- +full:leak +full:- +full:current

19  * --------------
37 /* preserve original callsite __FILE__ and __LINE__ for leak report */ in debug_create_priority_queue()
40 my_queue->get_order = get_order; in debug_create_priority_queue()
41 my_queue->front = NULL; in debug_create_priority_queue()
42 my_queue->no_of_elements = 0; in debug_create_priority_queue()
48 /* Define a function to "destroy" a priority queue, freeing-up
59 while (my_queue->front != NULL) { in destroy_queue()
60 temp = my_queue->front; in destroy_queue()
61 my_queue->front = my_queue->front->node_next; in destroy_queue()
91 new_node->node_next = NULL; in debug_get_node()
103 free(old_node - 1); in free_node()
115 pn--; in next_node()
117 if (pn->node_next == NULL) in next_node()
120 return pn->node_next + 1; in next_node()
129 return (!my_queue || !my_queue->front); in empty()
138 if (NULL == q || NULL == q->front) in queue_head()
141 return q->front + 1; in queue_head()
146 * The element is added according to its priority -
154 node *new_node = (node *)my_node - 1; in enqueue()
155 node *i = NULL; in enqueue() local
156 node *j = my_queue->front; in enqueue()
159 (*my_queue->get_order)(new_node + 1, j + 1) > 0) { in enqueue()
160 i = j; in enqueue()
161 j = j->node_next; in enqueue()
164 if (i == NULL) { /* Insert at beginning of the queue */ in enqueue()
165 new_node->node_next = my_queue->front; in enqueue()
166 my_queue->front = new_node; in enqueue()
168 new_node->node_next = i->node_next; in enqueue()
169 i->node_next = new_node; in enqueue()
172 ++my_queue->no_of_elements; in enqueue()
184 node *my_node = my_queue->front; in dequeue()
187 my_queue->front = my_node->node_next; in dequeue()
188 --my_queue->no_of_elements; in dequeue()
202 return my_queue->no_of_elements; in get_no_of_elements()
209 * that for priority queues. (Given the current representation)
211 * I don't anticipate this to be a problem. If it does turn
212 * out to be a bottleneck, I will consider replacing the
213 * current implementation with a binomial or fibonacci heap.
227 * ----------
232 /* C is not Lisp and does not allow anonymous lambda functions :-(.