From d56b794177950855a01d886df69be18665b921aa Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sun, 21 Oct 2018 22:41:29 +0200 Subject: [PATCH] Fix bug in _get method of deque container. --- m-deque.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/m-deque.h b/m-deque.h index ff6b2993..810ab178 100644 --- a/m-deque.h +++ b/m-deque.h @@ -680,12 +680,11 @@ assert (key < d->count); \ const size_t index0 = d->front->index; \ size_t count = 0; \ - M_C(name, _node_list_it_t) it; \ /* This loop is in log(N) since the size increase exponentially.*/ \ - for(M_C(name, _node_list_it)(it, d->list) ; \ - !M_C(name, _node_list_end_p)(it) ; \ - M_C(name, _node_list_next)(it) ){ \ - M_C(name, _node_t) *n = M_C(name, _node_list_ref)(it); \ + for(M_C(name, _node_t) *n = d->front->node; \ + n != NULL ; \ + n = (n == d->back->node) ? NULL : \ + M_C(name, _node_list_next_obj)(d->list, n) ){ \ if (index0 + key < count + n->size) { \ return &n->data[index0 + key - count]; \ } \