diff --git a/rcl/src/rcl/context.c b/rcl/src/rcl/context.c index 0f6df4da3..b400c09ef 100644 --- a/rcl/src/rcl/context.c +++ b/rcl/src/rcl/context.c @@ -95,11 +95,6 @@ rcl_context_get_rmw_context(rcl_context_t * context) void __cleanup_context(rcl_context_t * context) { - // if null, nothing can be done - if (NULL == context) { - return; - } - // reset the instance id to 0 to indicate "invalid" (should already be 0, but this is defensive) rcutils_atomic_store((atomic_uint_least64_t *)(&context->instance_id_storage), 0); diff --git a/rcl/test/rcl/test_context.cpp b/rcl/test/rcl/test_context.cpp index 56a8e0842..9ef189fed 100644 --- a/rcl/test/rcl/test_context.cpp +++ b/rcl/test/rcl/test_context.cpp @@ -124,3 +124,8 @@ TEST_F(CLASSNAME(TestContextFixture, RMW_IMPLEMENTATION), nominal) { ret = rcl_init_options_fini(&init_options); EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string().str; } + +TEST_F(CLASSNAME(TestContextFixture, RMW_IMPLEMENTATION), bad_fini) { + EXPECT_EQ(RCL_RET_INVALID_ARGUMENT, rcl_context_fini(nullptr)); + rcl_reset_error(); +}