BitVecSuffixMatch
- Function
- August 22, 2025
Table of Contents
BitVecSuffixMatch
BitVecSuffixMatch
Description
Match bitvector against an array of suffix patterns. Returns the index of the first matching suffix.
Parameters
Name | Direction | Description |
---|---|---|
bv | in | Bitvector to check |
patterns | in | Vec(BitVec) to check suffices against |
Usage example (from documentation)
BitVec suffixes[3] = { pattern1, pattern2, pattern3 };
u64 match = BitVecSuffixMatch(&data, suffixes, 3);
Usage example (Cross-references)
- In
BitVec.c:1625
:
}
u64 BitVecSuffixMatch(BitVec *bv, BitVecs *patterns) {
ValidateBitVec(bv);
if (!patterns) {
bool test_bitvec_suffix_match_null_source(void) {
printf("Testing BitVecSuffixMatch(NULL, patterns, 1) - should fatal\n");
BitVecs vp = VecInitWithDeepCopy(NULL, BitVecDeinit);
BitVecPush(VecPtrAt(&vp, 0), true);
BitVecs vp = VecInitWithDeepCopy(NULL, BitVecDeinit);
BitVecPush(VecPtrAt(&vp, 0), true);
BitVecSuffixMatch(NULL, &vp);
VecDeinit(&vp);
return true;
bool test_bitvec_suffix_match_null_patterns(void) {
printf("Testing BitVecSuffixMatch(source, NULL, 1) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecSuffixMatch(&source, NULL);
BitVecDeinit(&source);
return true;
// BitVecSuffixMatch tests
bool test_bitvec_suffix_match_basic(void) {
printf("Testing BitVecSuffixMatch basic functionality\n");
BitVec source = BitVecInit();
BitVecPush(p2, false);
u64 match_idx = BitVecSuffixMatch(&source, &patterns);
result = result && (match_idx == 1);
// BitVecSuffixMatch tests
bool test_bitvec_suffix_match_basic(void) {
printf("Testing BitVecSuffixMatch basic functionality\n");
BitVec source = BitVecInit();
BitVecPush(&patterns[2], false);
u64 match_idx = BitVecSuffixMatch(&source, patterns, 3);
result = result && (match_idx == 1);
bool test_bitvec_suffix_match_null_source(void) {
printf("Testing BitVecSuffixMatch(NULL, patterns, 1) - should fatal\n");
BitVec patterns[1] = {BitVecInit()};
BitVecPush(&patterns[0], true);
BitVec patterns[1] = {BitVecInit()};
BitVecPush(&patterns[0], true);
BitVecSuffixMatch(NULL, patterns, 1);
BitVecDeinit(&patterns[0]);
return true;
bool test_bitvec_suffix_match_null_patterns(void) {
printf("Testing BitVecSuffixMatch(source, NULL, 1) - should fatal\n");
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVec source = BitVecInit();
BitVecPush(&source, true);
BitVecSuffixMatch(&source, NULL, 1);
BitVecDeinit(&source);
return true;