Set yaml_variant values to NULL on finalization (#765) (#782)

Signed-off-by: Stephen Brawner <brawner@gmail.com>
This commit is contained in:
brawner 2020-10-01 15:06:52 -07:00 committed by GitHub
parent a26c9cf575
commit 2e9ce913db
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -593,33 +593,41 @@ void rcl_yaml_variant_fini(
if (NULL != param_var->bool_value) { if (NULL != param_var->bool_value) {
allocator.deallocate(param_var->bool_value, allocator.state); allocator.deallocate(param_var->bool_value, allocator.state);
param_var->bool_value = NULL;
} else if (NULL != param_var->integer_value) { } else if (NULL != param_var->integer_value) {
allocator.deallocate(param_var->integer_value, allocator.state); allocator.deallocate(param_var->integer_value, allocator.state);
param_var->integer_value = NULL;
} else if (NULL != param_var->double_value) { } else if (NULL != param_var->double_value) {
allocator.deallocate(param_var->double_value, allocator.state); allocator.deallocate(param_var->double_value, allocator.state);
param_var->double_value = NULL;
} else if (NULL != param_var->string_value) { } else if (NULL != param_var->string_value) {
allocator.deallocate(param_var->string_value, allocator.state); allocator.deallocate(param_var->string_value, allocator.state);
param_var->string_value = NULL;
} else if (NULL != param_var->bool_array_value) { } else if (NULL != param_var->bool_array_value) {
if (NULL != param_var->bool_array_value->values) { if (NULL != param_var->bool_array_value->values) {
allocator.deallocate(param_var->bool_array_value->values, allocator.state); allocator.deallocate(param_var->bool_array_value->values, allocator.state);
} }
allocator.deallocate(param_var->bool_array_value, allocator.state); allocator.deallocate(param_var->bool_array_value, allocator.state);
param_var->bool_array_value = NULL;
} else if (NULL != param_var->integer_array_value) { } else if (NULL != param_var->integer_array_value) {
if (NULL != param_var->integer_array_value->values) { if (NULL != param_var->integer_array_value->values) {
allocator.deallocate(param_var->integer_array_value->values, allocator.state); allocator.deallocate(param_var->integer_array_value->values, allocator.state);
} }
allocator.deallocate(param_var->integer_array_value, allocator.state); allocator.deallocate(param_var->integer_array_value, allocator.state);
param_var->integer_array_value = NULL;
} else if (NULL != param_var->double_array_value) { } else if (NULL != param_var->double_array_value) {
if (NULL != param_var->double_array_value->values) { if (NULL != param_var->double_array_value->values) {
allocator.deallocate(param_var->double_array_value->values, allocator.state); allocator.deallocate(param_var->double_array_value->values, allocator.state);
} }
allocator.deallocate(param_var->double_array_value, allocator.state); allocator.deallocate(param_var->double_array_value, allocator.state);
param_var->double_array_value = NULL;
} else if (NULL != param_var->string_array_value) { } else if (NULL != param_var->string_array_value) {
if (RCUTILS_RET_OK != rcutils_string_array_fini(param_var->string_array_value)) { if (RCUTILS_RET_OK != rcutils_string_array_fini(param_var->string_array_value)) {
// Log and continue ... // Log and continue ...
RCUTILS_SAFE_FWRITE_TO_STDERR("Error deallocating string array"); RCUTILS_SAFE_FWRITE_TO_STDERR("Error deallocating string array");
} }
allocator.deallocate(param_var->string_array_value, allocator.state); allocator.deallocate(param_var->string_array_value, allocator.state);
param_var->string_array_value = NULL;
} else { } else {
/// Nothing to do to keep pclint happy /// Nothing to do to keep pclint happy
} }