aboutsummaryrefslogtreecommitdiffstats
path: root/negotiator/skipping.c
diff options
context:
space:
mode:
Diffstat (limited to 'negotiator/skipping.c')
-rw-r--r--negotiator/skipping.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/negotiator/skipping.c b/negotiator/skipping.c
index 6e61b3c5f1..abedb70a48 100644
--- a/negotiator/skipping.c
+++ b/negotiator/skipping.c
@@ -247,8 +247,11 @@ static int ack(struct fetch_negotiator *n, struct commit *c)
static void release(struct fetch_negotiator *n)
{
- clear_prio_queue(&((struct data *)n->data)->rev_list);
- FREE_AND_NULL(n->data);
+ struct data *data = n->data;
+ for (int i = 0; i < data->rev_list.nr; i++)
+ free(data->rev_list.array[i].data);
+ clear_prio_queue(&data->rev_list);
+ FREE_AND_NULL(data);
}
void skipping_negotiator_init(struct fetch_negotiator *negotiator)