diff options
Diffstat (limited to 'src/charon/encoding/payloads/ts_payload.c')
-rw-r--r-- | src/charon/encoding/payloads/ts_payload.c | 15 |
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 **) ¤t_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); } /* |