array_foreach_elem(&pool->clients, client) {
i_assert(client->refcount == 0);
admin_client_unref(&client->client);
+ i_free(client);
}
array_free(&pool->clients);
i_free(pool->base_dir);
break;
if (pool->idle_connection_count == 0)
break;
- if (clients[i-1]->refcount == 0) {
- admin_client_unref(&clients[i-1]->client);
+
+ struct admin_client_ref *client = clients[i-1];
+ if (client->refcount == 0) {
+ admin_client_unref(&client->client);
+ i_free(client);
array_delete(&pool->clients, i-1, 1);
}
}