Project

General

Profile

Feature #42 » 0030-support.c-Drop-asserts-of-parameters-with-nonnull-at.patch

main, S3_2 - Marko Lindqvist, 12/09/2023 03:44 AM

View differences:

utility/support.c
available on all platforms. Where the functions are available
natively, these are (mostly) just wrappers.
Notice the function names here are prefixed by, eg, "fc_". An
alternative would be to use the "standard" function name, and
provide the implementation only if required. However the method
Notice the function names here are prefixed by, eg, "fc_".
An alternative would be to use the "standard" function name, and
provide the implementation only if required. However the method
here has some advantages:
- We can provide definite prototypes in support.h, rather than
worrying about whether a system prototype exists, and if so where,
and whether it is correct. (Note that whether or not configure
and whether it is correct. (Note that whether or not configure
finds a function and defines HAVE_FOO does not necessarily say
whether or not there is a _prototype_ for the function available.)
......
/* This may be overzealous, but I suspect any triggering of these to
* be bugs. */
fc_assert_ret_val(NULL != str, -1);
fc_assert_ret_val(0 < n, -1);
fc_assert_ret_val(NULL != format, -1);
#ifdef HAVE_WORKING_VSNPRINTF
r = vsnprintf(str, n, format, ap);
......
int ret;
va_list ap;
fc_assert_ret_val(NULL != format, -1);
va_start(ap, format);
ret = fc_vsnprintf(str, n, format, ap);
va_end(ap);
......
int ret;
va_list ap;
fc_assert_ret_val(NULL != format, -1);
fc_assert_ret_val(NULL != str, -1);
fc_assert_ret_val(0 < n, -1);
len = strlen(str);
(1-1/2)