From: Alan T. DeKok Date: Wed, 11 Dec 2019 21:12:01 +0000 (-0500) Subject: reuse more memory X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bdedaa2028d7e59c58ad5cce27464fbcf53fb59b;p=thirdparty%2Ffreeradius-server.git reuse more memory --- diff --git a/src/lib/io/master.c b/src/lib/io/master.c index af62454e2b8..fbb19964d3f 100644 --- a/src/lib/io/master.c +++ b/src/lib/io/master.c @@ -829,12 +829,14 @@ static fr_io_track_t *fr_io_track_add(fr_io_client_t *client, if (!track) { MEM(track = talloc_zero(client, fr_io_track_t)); talloc_get_type_abort(track, fr_io_track_t); + MEM(track->address = talloc_zero(track, fr_io_address_t)); } else { fr_dlist_remove(&client->thread->track_list, track); + fr_io_address_t *old = track->address; memset(track, 0, sizeof(*track)); + track->address = old; } - MEM(track->address = talloc_zero(track, fr_io_address_t)); memcpy(track->address, address, sizeof(*address)); track->address->radclient = client->radclient; @@ -914,6 +916,8 @@ static void track_free(fr_io_track_t *track) { fr_io_thread_t *thread = track->client->thread; + if (track->ev) (void) fr_event_timer_delete(thread->el, &track->ev); + /* * Keep most recently used elements around. But * limit them to ~1000 entries.