Project

General

Profile

Feature #665 ยป 0092-bitvector.c-Replace-parameter-checking-fc_asserts-wi.patch

Marko Lindqvist, 05/23/2024 09:51 PM

View differences:

utility/bitvector.c
***************************************************************************/
bool dbv_isset(const struct dbv *pdbv, int bit)
{
fc_assert_ret_val(pdbv != nullptr, FALSE);
fc_assert_ret_val(pdbv->vec != nullptr, FALSE);
fc_assert_ret_val(bit < pdbv->bits, FALSE);
......
***************************************************************************/
bool dbv_isset_any(const struct dbv *pdbv)
{
fc_assert_ret_val(pdbv != nullptr, FALSE);
fc_assert_ret_val(pdbv->vec != nullptr, FALSE);
return bv_check_mask(pdbv->vec, pdbv->vec, _BV_BYTES(pdbv->bits),
......
***************************************************************************/
void dbv_set(struct dbv *pdbv, int bit)
{
fc_assert_ret(pdbv != nullptr);
fc_assert_ret(pdbv->vec != nullptr);
fc_assert_ret(bit < pdbv->bits);
......
***************************************************************************/
void dbv_set_all(struct dbv *pdbv)
{
fc_assert_ret(pdbv != nullptr);
fc_assert_ret(pdbv->vec != nullptr);
memset(pdbv->vec, 0xff, _BV_BYTES(pdbv->bits));
......
***************************************************************************/
void dbv_clr(struct dbv *pdbv, int bit)
{
fc_assert_ret(pdbv != nullptr);
fc_assert_ret(pdbv->vec != nullptr);
fc_assert_ret(bit < pdbv->bits);
......
***************************************************************************/
void dbv_clr_all(struct dbv *pdbv)
{
fc_assert_ret(pdbv != nullptr);
fc_assert_ret(pdbv->vec != nullptr);
memset(pdbv->vec, 0, _BV_BYTES(pdbv->bits));
......
***************************************************************************/
bool dbv_are_equal(const struct dbv *pdbv1, const struct dbv *pdbv2)
{
fc_assert_ret_val(pdbv1 != nullptr, FALSE);
fc_assert_ret_val(pdbv1->vec != nullptr, FALSE);
fc_assert_ret_val(pdbv2 != nullptr, FALSE);
fc_assert_ret_val(pdbv2->vec != nullptr, FALSE);
return bv_are_equal(pdbv1->vec, pdbv2->vec, _BV_BYTES(pdbv1->bits),
......
char test_str[51];
int i, j, bit;
fc_assert_ret(pdbv != nullptr);
fc_assert_ret(pdbv->vec != nullptr);
for (i = 0; i < (pdbv->bits - 1) / 50 + 1; i++) {
utility/bitvector.h
int dbv_bits(struct dbv *pdbv);
bool dbv_isset(const struct dbv *pdbv, int bit);
bool dbv_isset_any(const struct dbv *pdbv);
void dbv_set(struct dbv *pdbv, int bit);
void dbv_set_all(struct dbv *pdbv);
void dbv_clr(struct dbv *pdbv, int bit);
void dbv_clr_all(struct dbv *pdbv);
bool dbv_are_equal(const struct dbv *pdbv1, const struct dbv *pdbv2);
bool dbv_isset(const struct dbv *pdbv, int bit)
fc__attribute((nonnull (1)));
bool dbv_isset_any(const struct dbv *pdbv)
fc__attribute((nonnull (1)));
void dbv_set(struct dbv *pdbv, int bit)
fc__attribute((nonnull (1)));
void dbv_set_all(struct dbv *pdbv)
fc__attribute((nonnull (1)));
void dbv_clr(struct dbv *pdbv, int bit)
fc__attribute((nonnull (1)));
void dbv_clr_all(struct dbv *pdbv)
fc__attribute((nonnull (1)));
bool dbv_are_equal(const struct dbv *pdbv1, const struct dbv *pdbv2)
fc__attribute((nonnull (1, 2)));
bool bv_match_dbv(const struct dbv *match, const unsigned char *src);
void dbv_copy(struct dbv *dest, const struct dbv *src);
void dbv_to_bv(unsigned char *dest, const struct dbv *src);
void bv_to_dbv(struct dbv *dest, const unsigned char *src);
void dbv_debug(struct dbv *pdbv);
void dbv_debug(struct dbv *pdbv)
fc__attribute((nonnull (1)));
/* Maximal size of a dynamic bitvector.
Use a large value to be on the safe side (4Mbits = 512kbytes). */
    (1-1/1)