From 1e8ddeb8a4c5fd7cc872738d3ef5866ab33c1355 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> Date: Thu, 17 Aug 2017 23:01:26 +0900 Subject: [PATCH] Replace ngtcp2_acktr_remove with ngtcp2_acktr_pop --- lib/ngtcp2_acktr.c | 21 +++++---------------- lib/ngtcp2_acktr.h | 5 +++-- lib/ngtcp2_conn.c | 6 +++--- tests/ngtcp2_acktr_test.c | 3 +-- 4 files changed, 12 insertions(+), 23 deletions(-) diff --git a/lib/ngtcp2_acktr.c b/lib/ngtcp2_acktr.c index fb6409d0..203fddb2 100644 --- a/lib/ngtcp2_acktr.c +++ b/lib/ngtcp2_acktr.c @@ -79,21 +79,10 @@ int ngtcp2_acktr_add(ngtcp2_acktr *acktr, ngtcp2_acktr_entry *ent) { ngtcp2_acktr_entry *ngtcp2_acktr_get(ngtcp2_acktr *acktr) { return acktr->ent; } -void ngtcp2_acktr_remove(ngtcp2_acktr *acktr, const ngtcp2_acktr_entry *ent) { - ngtcp2_acktr_entry **pent; - - for (pent = &acktr->ent; *pent; pent = &(*pent)->next) { - if (ent->pkt_num != (*pent)->pkt_num) { - continue; - } - - *pent = (*pent)->next; - - if (!(ent->flags & NGTCP2_ACKTR_FLAG_PASSIVE)) { - assert(acktr->nactive_ack > 0); - --acktr->nactive_ack; - } - - return; +void ngtcp2_acktr_pop(ngtcp2_acktr *acktr) { + if (!(acktr->ent->flags & NGTCP2_ACKTR_FLAG_PASSIVE)) { + assert(acktr->nactive_ack > 0); + --acktr->nactive_ack; } + acktr->ent = acktr->ent->next; } diff --git a/lib/ngtcp2_acktr.h b/lib/ngtcp2_acktr.h index 413af917..548c55db 100644 --- a/lib/ngtcp2_acktr.h +++ b/lib/ngtcp2_acktr.h @@ -112,8 +112,9 @@ int ngtcp2_acktr_add(ngtcp2_acktr *acktr, ngtcp2_acktr_entry *ent); ngtcp2_acktr_entry *ngtcp2_acktr_get(ngtcp2_acktr *acktr); /* - * ngtcp2_acktr_remove removes the |ent|. + * ngtcp2_acktr_remove the head of entries, which has the largest + * packet number. */ -void ngtcp2_acktr_remove(ngtcp2_acktr *acktr, const ngtcp2_acktr_entry *ent); +void ngtcp2_acktr_pop(ngtcp2_acktr *acktr); #endif /* NGTCP2_ACKTR_H */ diff --git a/lib/ngtcp2_conn.c b/lib/ngtcp2_conn.c index 592b28e2..5fc0b2b3 100644 --- a/lib/ngtcp2_conn.c +++ b/lib/ngtcp2_conn.c @@ -366,7 +366,7 @@ static int conn_create_ack_frame(ngtcp2_conn *conn, ngtcp2_ack *ack, first_pkt_num = last_pkt_num = rpkt->pkt_num; ack_delay = ts - rpkt->tstamp; - ngtcp2_acktr_remove(&conn->acktr, rpkt); + ngtcp2_acktr_pop(&conn->acktr); ngtcp2_acktr_entry_del(rpkt, conn->mem); ack->type = NGTCP2_FRAME_ACK; @@ -376,7 +376,7 @@ static int conn_create_ack_frame(ngtcp2_conn *conn, ngtcp2_ack *ack, for (; (rpkt = ngtcp2_acktr_get(&conn->acktr));) { if (rpkt->pkt_num + 1 == last_pkt_num) { last_pkt_num = rpkt->pkt_num; - ngtcp2_acktr_remove(&conn->acktr, rpkt); + ngtcp2_acktr_pop(&conn->acktr); ngtcp2_acktr_entry_del(rpkt, conn->mem); continue; } @@ -403,7 +403,7 @@ static int conn_create_ack_frame(ngtcp2_conn *conn, ngtcp2_ack *ack, first_pkt_num = last_pkt_num = rpkt->pkt_num; - ngtcp2_acktr_remove(&conn->acktr, rpkt); + ngtcp2_acktr_pop(&conn->acktr); ngtcp2_acktr_entry_del(rpkt, conn->mem); if (ack->num_blks == 255) { diff --git a/tests/ngtcp2_acktr_test.c b/tests/ngtcp2_acktr_test.c index 681666e3..1a6def98 100644 --- a/tests/ngtcp2_acktr_test.c +++ b/tests/ngtcp2_acktr_test.c @@ -58,8 +58,7 @@ void test_ngtcp2_acktr_add(void) { } for (i = 0; i < arraylen(ents); ++i) { - ent = ngtcp2_acktr_get(&acktr); - ngtcp2_acktr_remove(&acktr, ent); + ngtcp2_acktr_pop(&acktr); ent = ngtcp2_acktr_get(&acktr); -- GitLab