aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/encoding/payloads/ts_payload.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/encoding/payloads/ts_payload.c')
-rw-r--r--src/charon/encoding/payloads/ts_payload.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/charon/encoding/payloads/ts_payload.c b/src/charon/encoding/payloads/ts_payload.c
index 7cd08eeed..cce2fc282 100644
--- a/src/charon/encoding/payloads/ts_payload.c
+++ b/src/charon/encoding/payloads/ts_payload.c
@@ -280,18 +280,9 @@ static linked_list_t *get_traffic_selectors(private_ts_payload_t *this)
*/
static void destroy(private_ts_payload_t *this)
{
- while (this->traffic_selectors->get_count(this->traffic_selectors) > 0)
- {
- payload_t *current_traffic_selector;
-
- this->traffic_selectors->remove_last(this->traffic_selectors,(void **) &current_traffic_selector);
-
- current_traffic_selector->destroy(current_traffic_selector);
- }
-
- this->traffic_selectors->destroy(this->traffic_selectors);
-
- free(this);
+ this->traffic_selectors->destroy_offset(this->traffic_selectors,
+ offsetof(payload_t, destroy));
+ free(this);
}
/*