BitVecInsert
- Function
- August 22, 2025
Table of Contents
BitVecInsert
BitVecInsert
Description
Insert a bit at given index in bitvector. Shifts all bits at and after the index to the right.
Parameters
Name | Direction | Description |
---|---|---|
bv | in | Bitvector to insert bit into |
idx | in | Index at which to insert bit (0-based) |
value | in | Bit value to insert (true/false) |
Usage example (from documentation)
BitVecInsert(&flags, 5, true);
Usage example (Cross-references)
- In
BitVec.c:244
:
}
void BitVecInsert(BitVec *bitvec, u64 idx, bool value) {
ValidateBitVec(bitvec);
if (idx > bitvec->length) {
- In
BitVec.c:1494
:
// Insert new pattern
for (u64 i = 0; i < new_pattern->length; i++) {
BitVecInsert(bv, pos + i, BitVecGet(new_pattern, i));
}
- In
BitVec.c:1531
:
// Insert new pattern
for (u64 i = 0; i < new_pattern->length; i++) {
BitVecInsert(bv, match_pos + i, BitVecGet(new_pattern, i));
}
// Test BitVecInsert single bit function
bool test_bitvec_insert_single(void) {
printf("Testing BitVecInsert (single bit)\n");
BitVec bv = BitVecInit();
// Insert at index 0 (empty bitvector)
BitVecInsert(&bv, 0, true);
// Check first bit
// Insert at the end
BitVecInsert(&bv, 1, false);
// Check bits
// Insert in the middle
BitVecInsert(&bv, 1, true);
// Check all bits