diff options
Diffstat (limited to 'src/charon/encoding/payloads/cp_payload.c')
-rw-r--r-- | src/charon/encoding/payloads/cp_payload.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/charon/encoding/payloads/cp_payload.c b/src/charon/encoding/payloads/cp_payload.c index f1297e444..580a0c64a 100644 --- a/src/charon/encoding/payloads/cp_payload.c +++ b/src/charon/encoding/payloads/cp_payload.c @@ -240,20 +240,11 @@ static config_type_t get_config_type (private_cp_payload_t *this) /** * Implementation of payload_t.destroy and cp_payload_t.destroy. */ -static status_t destroy(private_cp_payload_t *this) +static void destroy(private_cp_payload_t *this) { - /* all attributes are getting destroyed */ - while (this->attributes->get_count(this->attributes) > 0) - { - configuration_attribute_t *current_attribute; - this->attributes->remove_last(this->attributes,(void **)¤t_attribute); - current_attribute->destroy(current_attribute); - } - this->attributes->destroy(this->attributes); - + this->attributes->destroy_offset(this->attributes, + offsetof(configuration_attribute_t, destroy)); free(this); - - return SUCCESS; } /* |