From 8c8fc8c7dc1e0c7752c35a33044f107540f94e61 Mon Sep 17 00:00:00 2001 From: Greg Burd Date: Tue, 30 Sep 2025 05:15:40 -0400 Subject: [PATCH v1] Don't check for NULL before calling bms_free() in tests The bms_free() function safely handles NULL input, so checking for NULL before calling it is unnecessary. Since tests serve as reference examples for proper API usage, they should demonstrate the correct calling pattern without redundant NULL checks. Author: Greg Burd Reported-by: David Rowley Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/7BD1ABDB-B03A-464A-9BA9-A73B55AD8A1F@getmailspring.com --- .../modules/test_bitmapset/test_bitmapset.c | 121 ++++++------------ 1 file changed, 40 insertions(+), 81 deletions(-) diff --git a/src/test/modules/test_bitmapset/test_bitmapset.c b/src/test/modules/test_bitmapset/test_bitmapset.c index 2e821320836..7a706662e9f 100644 --- a/src/test/modules/test_bitmapset/test_bitmapset.c +++ b/src/test/modules/test_bitmapset/test_bitmapset.c @@ -109,8 +109,7 @@ test_bms_add_member(PG_FUNCTION_ARGS) bms = bms_add_member(bms, member); result = BITMAPSET_TO_TEXT(bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_TEXT_P(result); } @@ -131,8 +130,7 @@ test_bms_add_members(PG_FUNCTION_ARGS) /* IMPORTANT: bms_add_members modifies/frees the first argument */ bms1 = bms_add_members(bms1, bms2); - if (bms2) - bms_free(bms2); + bms_free(bms2); result = BITMAPSET_TO_TEXT(bms1); bms_free(bms1); @@ -181,8 +179,7 @@ test_bms_is_member(PG_FUNCTION_ARGS) member = PG_GETARG_INT32(1); result = bms_is_member(member, bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_BOOL(result); } @@ -198,8 +195,7 @@ test_bms_num_members(PG_FUNCTION_ARGS) result = bms_num_members(bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_INT32(result); } @@ -239,10 +235,8 @@ test_bms_copy(PG_FUNCTION_ARGS) copy_bms = bms_copy(bms); result = BITMAPSET_TO_TEXT(copy_bms); - if (bms) - bms_free(bms); - if (copy_bms) - bms_free(copy_bms); + bms_free(bms); + bms_free(copy_bms); PG_RETURN_TEXT_P(result); } @@ -262,10 +256,8 @@ test_bms_equal(PG_FUNCTION_ARGS) result = bms_equal(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); PG_RETURN_BOOL(result); } @@ -286,10 +278,8 @@ test_bms_union(PG_FUNCTION_ARGS) result_bms = bms_union(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); if (result_bms == NULL) PG_RETURN_NULL(); @@ -312,8 +302,7 @@ test_bms_membership(PG_FUNCTION_ARGS) bms = TEXT_TO_BITMAPSET(PG_GETARG_TEXT_PP(0)); result = bms_membership(bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_INT32((int32) result); } @@ -332,8 +321,7 @@ test_bms_next_member(PG_FUNCTION_ARGS) prevmember = PG_GETARG_INT32(1); result = bms_next_member(bms, prevmember); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_INT32(result); } @@ -354,10 +342,8 @@ test_bms_intersect(PG_FUNCTION_ARGS) result_bms = bms_intersect(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); if (result_bms == NULL) PG_RETURN_NULL(); @@ -384,10 +370,8 @@ test_bms_difference(PG_FUNCTION_ARGS) result_bms = bms_difference(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); if (result_bms == NULL) PG_RETURN_NULL(); @@ -413,10 +397,8 @@ test_bms_compare(PG_FUNCTION_ARGS) result = bms_compare(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); PG_RETURN_INT32(result); } @@ -432,8 +414,7 @@ test_bms_is_empty(PG_FUNCTION_ARGS) result = bms_is_empty(bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_BOOL(result); } @@ -453,10 +434,8 @@ test_bms_is_subset(PG_FUNCTION_ARGS) result = bms_is_subset(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); PG_RETURN_BOOL(result); } @@ -476,10 +455,8 @@ test_bms_subset_compare(PG_FUNCTION_ARGS) result = bms_subset_compare(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); PG_RETURN_INT32((int32) result); } @@ -495,8 +472,7 @@ test_bms_singleton_member(PG_FUNCTION_ARGS) result = bms_singleton_member(bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_INT32(result); } @@ -566,10 +542,8 @@ test_bms_overlap(PG_FUNCTION_ARGS) result = bms_overlap(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); PG_RETURN_BOOL(result); } @@ -593,8 +567,7 @@ test_bms_overlap_list(PG_FUNCTION_ARGS) if (PG_ARGISNULL(1)) { - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_BOOL(false); } @@ -616,8 +589,7 @@ test_bms_overlap_list(PG_FUNCTION_ARGS) result = bms_overlap_list(bms, int_list); - if (bms) - bms_free(bms); + bms_free(bms); list_free(int_list); @@ -642,10 +614,8 @@ test_bms_nonempty_difference(PG_FUNCTION_ARGS) result = bms_nonempty_difference(bms1, bms2); - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); PG_RETURN_BOOL(result); } @@ -695,16 +665,14 @@ test_bms_add_range(PG_FUNCTION_ARGS) /* Check for invalid range */ if (upper < lower) { - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_NULL(); } bms = bms_add_range(bms, lower, upper); result = BITMAPSET_TO_TEXT(bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_TEXT_P(result); } @@ -724,16 +692,14 @@ test_bms_int_members(PG_FUNCTION_ARGS) bms1 = bms_int_members(bms1, bms2); - if (bms2) - bms_free(bms2); + bms_free(bms2); if (bms1 == NULL) PG_RETURN_NULL(); result = BITMAPSET_TO_TEXT(bms1); - if (bms1) - bms_free(bms1); + bms_free(bms1); PG_RETURN_TEXT_P(result); } @@ -757,8 +723,7 @@ test_bms_del_members(PG_FUNCTION_ARGS) /* bms1 is now invalid, do not free it */ - if (bms2) - bms_free(bms2); + bms_free(bms2); if (result_bms == NULL) PG_RETURN_NULL(); @@ -788,8 +753,7 @@ test_bms_replace_members(PG_FUNCTION_ARGS) /* bms1 is now invalid, do not free it */ - if (bms2) - bms_free(bms2); + bms_free(bms2); if (result_bms == NULL) PG_RETURN_NULL(); @@ -839,8 +803,7 @@ test_bms_hash_value(PG_FUNCTION_ARGS) hash_result = bms_hash_value(bms); - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_INT32(hash_result); } @@ -889,11 +852,8 @@ test_bitmap_match(PG_FUNCTION_ARGS) /* Call bitmap_match with addresses of the Bitmapset pointers */ match_result = bitmap_match(&bms_ptr1, &bms_ptr2, sizeof(Bitmapset *)); - /* Clean up */ - if (bms1) - bms_free(bms1); - if (bms2) - bms_free(bms2); + bms_free(bms1); + bms_free(bms2); PG_RETURN_INT32(match_result); } @@ -1031,8 +991,7 @@ test_random_operations(PG_FUNCTION_ARGS) total_ops++; } - if (bms) - bms_free(bms); + bms_free(bms); PG_RETURN_INT32(total_ops); } -- 2.49.0