Skip to content

VecDeinit

Description

Deinit a vec by freeing its backing buffer. If the vec was built with a deep-copy copy_deinit callback, that callback is invoked on every live element before the buffer is freed.

Parameters

Name Direction Description
v in,out Vec to deinitialize. Must not be used until reinitialized.

Success

Element deinit callbacks run, backing buffer freed; v left in the zeroed post-deinit state.

Failure

Cannot fail; aborts on a corrupted magic via the validator.

Usage example (Cross-references)

Usage examples (Cross-references)
        if (!self)
            return;
        VecDeinit(&self->specs);
    }
            MapDeinit(&self->live);
        if (self->freed.allocator)
            VecDeinit(&self->freed);
    
        HeapAllocatorDeinit(&self->meta);
            StrDeinit(&e->module_path);
        }
        VecDeinit(&self->entries);
        MemSet(self, 0, sizeof(*self));
    }
        out->cache     = VecInitT(out->cache, alloc);
        if (!ProcMapsLoad(&out->maps, alloc)) {
            VecDeinit(&out->cache);
            MemSet(out, 0, sizeof(*out));
            return false;
            ElfDeinit(&e->elf);
        }
        VecDeinit(&self->cache);
        ProcMapsDeinit(&self->maps);
        MemSet(self, 0, sizeof(*self));
            return;
        StrDeinit(&self->raw);
        VecDeinit(&self->entries);
        MemSet(self, 0, sizeof(*self));
    }
            }
        }
        VecDeinit(&dc);
        HeapAllocatorDeinit(&ha);
            StrDeinit(&e->module_path);
        }
        VecDeinit(&self->entries);
        MemSet(self, 0, sizeof(*self));
    }
                StrDeinit(&e->name);
            }
            VecDeinit(&self->hosts);
        }
        if (VecBegin(&self->nameservers)) {
        }
        if (VecBegin(&self->nameservers)) {
            VecDeinit(&self->nameservers);
        }
        self->allocator = NULL;
        u16        id    = random_query_id();
        if (!DnsBuildQuery(&query, id, hostname, qtype)) {
            VecDeinit(&query);
            ArenaAllocatorDeinit(&scratch);
            return false;
        u8  resp_buf[1232]; // safe UDP payload (avoids IP fragmentation)
        i64 got = udp_round_trip(ns, VecBegin(&query), VecLen(&query), resp_buf, sizeof(resp_buf), self->timeout_ms);
        VecDeinit(&query);
        if (got <= 0) {
            ArenaAllocatorDeinit(&scratch);
            *out = VecAt(&addrs, 0);
        }
        VecDeinit(&addrs);
        return have_one;
    }
        }
        StrDeinit(&req->url);
        VecDeinit(&req->headers);
        MemSet(req, 0, sizeof(*req));
    }
        }
        StrDeinit(&response->body);
        VecDeinit(&response->headers);
        MemSet(response, 0, sizeof(*response));
    }
            return;
        BufDeinit(&self->data);
        VecDeinit(&self->segments);
        VecDeinit(&self->sections);
        VecDeinit(&self->symbols);
        BufDeinit(&self->data);
        VecDeinit(&self->segments);
        VecDeinit(&self->sections);
        VecDeinit(&self->symbols);
        MemSet(self, 0, sizeof(*self));
        VecDeinit(&self->segments);
        VecDeinit(&self->sections);
        VecDeinit(&self->symbols);
        MemSet(self, 0, sizeof(*self));
    }
            return;
        BufDeinit(&self->data);
        VecDeinit(&self->sections);
        VecDeinit(&self->symbols);
        VecDeinit(&self->dynamic_symbols);
        BufDeinit(&self->data);
        VecDeinit(&self->sections);
        VecDeinit(&self->symbols);
        VecDeinit(&self->dynamic_symbols);
        MemSet(self, 0, sizeof(*self));
        VecDeinit(&self->sections);
        VecDeinit(&self->symbols);
        VecDeinit(&self->dynamic_symbols);
        MemSet(self, 0, sizeof(*self));
    }
    
    static void cu_strings_deinit(CuStrings *cs) {
        VecDeinit(&cs->dir_offsets);
        VecDeinit(&cs->file_dir_idx);
        VecDeinit(&cs->file_offsets);
    static void cu_strings_deinit(CuStrings *cs) {
        VecDeinit(&cs->dir_offsets);
        VecDeinit(&cs->file_dir_idx);
        VecDeinit(&cs->file_offsets);
    }
        VecDeinit(&cs->dir_offsets);
        VecDeinit(&cs->file_dir_idx);
        VecDeinit(&cs->file_offsets);
    }
        }
    
        VecDeinit(&pending_file_offsets);
        VecDeinit(&pending_dir_offsets);
    
        VecDeinit(&pending_file_offsets);
        VecDeinit(&pending_dir_offsets);
    
        if (!ok) {
        if (!self)
            return;
        VecDeinit(&self->entries);
        StrDeinit(&self->string_pool);
        MemSet(self, 0, sizeof(*self));
    static void abbrev_table_deinit(AbbrevTable *t) {
        for (size i = 0; i < VecLen(t); ++i) {
            VecDeinit(&VecPtrAt(t, i)->attrs);
        }
        VecDeinit(t);
            VecDeinit(&VecPtrAt(t, i)->attrs);
        }
        VecDeinit(t);
    }
                u64 name, form;
                if (!BufReadULeb128(&cur, &name)) {
                    VecDeinit(&e.attrs);
                    return false;
                }
                }
                if (!BufReadULeb128(&cur, &form)) {
                    VecDeinit(&e.attrs);
                    return false;
                }
                AbbrevAttr a = {.name = (u32)name, .form = (u32)form};
                if (!VecPushBackR(&e.attrs, a)) {
                    VecDeinit(&e.attrs);
                    return false;
                }
            }
            if (!VecPushBackR(out, e)) {
                VecDeinit(&e.attrs);
                return false;
            }
        }
    
        VecDeinit(&pending);
    
        if (!ok) {
            return;
        if (VecAllocator(&self->entries))
            VecDeinit(&self->entries);
        if (StrAllocator(&self->string_pool))
            StrDeinit(&self->string_pool);
    
        if (!ok) {
            VecDeinit(&pending);
            return false;
        }
    
        if (VecLen(&pending) == 0) {
            VecDeinit(&pending);
            return true;
        }
            }
        }
        VecDeinit(&pending);
    
        return ok;
        }
        StrDeinit(&self->name_pool);
        VecDeinit(&self->functions);
        BufDeinit(&self->data);
        MemSet(self, 0, sizeof(*self));
        if (!self)
            return;
        VecDeinit(&self->cies);
        VecDeinit(&self->fdes);
        MemSet(self, 0, sizeof(*self));
            return;
        VecDeinit(&self->cies);
        VecDeinit(&self->fdes);
        MemSet(self, 0, sizeof(*self));
    }
        StrDeinit(&self->name);
        StrDeinit(&self->target);
        VecDeinit(&self->rdata);
    }
            DnsRecordDeinit(r);
        }
        VecDeinit(list);
    }
            return;
        BufDeinit(&self->data);
        VecDeinit(&self->sections);
        MemSet(self, 0, sizeof(*self));
    }
            }
    
            VecDeinit(&addrs);
            DnsResolverDeinit(&r);
        }
    void deinit_char_ptr_vec(CharPtrVec *vec) {
        // VecDeinit will automatically call char_ptr_deinit on each element
        VecDeinit(vec);
    }
    
                    VecMerge(vec, &temp);
                    VecDeinit(&temp);
                }
                break;
                    VecInitClone(vec, &temp);
    
                    VecDeinit(&temp);
                }
                break;
    void deinit_str_vec(StrVec *vec) {
        // VecDeinit will automatically call StrDeinit on each element
        VecDeinit(vec);
    }
    
                    VecMerge(vec, &temp);
                    VecDeinit(&temp);
                }
                break;
                    VecInitClone(vec, &temp);
    
                    VecDeinit(&temp);
                }
                break;
    
    void deinit_int_vec(IntVec *vec) {
        VecDeinit(vec);
    }
    
                VecMerge(vec, &temp);
                VecDeinit(&temp); // Clean up temp to prevent memory leak
                break;
            }
                VecInitClone(vec, &temp);
    
                VecDeinit(&temp); // Clean up temp to prevent memory leak
                break;
            }
    void EdgeCaseDataDeinit(EdgeCaseData *data) {
        StrDeinit(&data->empty_string);
        VecDeinit(&data->empty_array);
        VecDeinit(&data->numbers);
    }
        StrDeinit(&data->empty_string);
        VecDeinit(&data->empty_array);
        VecDeinit(&data->numbers);
    }
        StrDeinit(&json1);
        StrDeinit(&json2);
        VecDeinit(&items);
        VecDeinit(&data);
        DefaultAllocatorDeinit(&alloc);
        StrDeinit(&json2);
        VecDeinit(&items);
        VecDeinit(&data);
        DefaultAllocatorDeinit(&alloc);
        return success;
    
        StrDeinit(&json);
        VecDeinit(&obj.filled_items);
        DefaultAllocatorDeinit(&alloc);
        return success;
        StrDeinit(&result->binary_name);
        StrDeinit(&result->sha256);
        VecDeinit(&result->tags);
        StrDeinit(&result->created_at);
        StrDeinit(&result->model_name);
        StrDeinit(&json);
        StrDeinit(&response.message);
        VecDeinit(&response.data);
        DefaultAllocatorDeinit(&alloc);
        return success;
    
        StrDeinit(&json);
        VecDeinit(&functions);
        DefaultAllocatorDeinit(&alloc);
        return success;
    
    StrDeinit(&json);
    VecDeinit(&symbols);
    return success;
    }
    
        StrDeinit(&json);
        VecDeinit(&numbers);
        VecDeinit(&strings);
        VecDeinit(&booleans);
        StrDeinit(&json);
        VecDeinit(&numbers);
        VecDeinit(&strings);
        VecDeinit(&booleans);
        DefaultAllocatorDeinit(&alloc);
        VecDeinit(&numbers);
        VecDeinit(&strings);
        VecDeinit(&booleans);
        DefaultAllocatorDeinit(&alloc);
        return success;
    void SimpleProductDeinit(SimpleProduct *product) {
        StrDeinit(&product->name);
        VecDeinit(&product->tags);
    }
    
        StrDeinit(&json);
        VecDeinit(&languages);
        DefaultAllocatorDeinit(&alloc);
        return success;
    
        StrDeinit(&json);
        VecDeinit(&empty_numbers);
        VecDeinit(&empty_strings);
        DefaultAllocatorDeinit(&alloc);
        StrDeinit(&json);
        VecDeinit(&empty_numbers);
        VecDeinit(&empty_strings);
        DefaultAllocatorDeinit(&alloc);
        return success;
    
        StrDeinit(&json);
        VecDeinit(&empty_list);
        DefaultAllocatorDeinit(&alloc);
        return success;
    
        StrDeinit(&json);
        VecDeinit(&empty_arr);
        VecDeinit(&filled_arr);
        DefaultAllocatorDeinit(&alloc);
        StrDeinit(&json);
        VecDeinit(&empty_arr);
        VecDeinit(&filled_arr);
        DefaultAllocatorDeinit(&alloc);
        return success;
            StrDeinit(&tag);
        }
        VecDeinit(&result->tags);
        StrDeinit(&result->created_at);
        StrDeinit(&result->model_name);
    
        StrDeinit(&json);
        VecDeinit(&symbols);
        DefaultAllocatorDeinit(&alloc);
        return success;
        StrDeinit(&json);
        StrDeinit(&response.message);
        VecDeinit(&response.data);
        DefaultAllocatorDeinit(&alloc);
        return success;
        StrDeinit(&json);
        StrDeinit(&response.message);
        VecDeinit(&response.data);
        DefaultAllocatorDeinit(&alloc);
        return success;
        StrDeinit(&json);
        StrDeinit(&response.message);
        VecDeinit(&response.data);
        DefaultAllocatorDeinit(&alloc);
        return success;
    void SimpleProductDeinit(SimpleProduct *product) {
        StrDeinit(&product->name);
        VecDeinit(&product->tags);
    }
    
        StrDeinit(&json);
        VecDeinit(&languages);
        DefaultAllocatorDeinit(&alloc);
        return success;
    void TestConfigDeinit(TestConfig *config) {
        StrDeinit(&config->log_level);
        VecDeinit(&config->features);
    }
        TestPersonDeinit(&data->user);
        TestConfigDeinit(&data->config);
        VecDeinit(&data->numbers);
        VecDeinit(&data->flags);
    }
        TestConfigDeinit(&data->config);
        VecDeinit(&data->numbers);
        VecDeinit(&data->flags);
    }
        // Cleanup
        StrDeinit(&json);
        VecDeinit(&original_numbers);
        VecDeinit(&original_strings);
        VecDeinit(&parsed_numbers);
        StrDeinit(&json);
        VecDeinit(&original_numbers);
        VecDeinit(&original_strings);
        VecDeinit(&parsed_numbers);
        VecDeinit(&parsed_strings);
        VecDeinit(&original_numbers);
        VecDeinit(&original_strings);
        VecDeinit(&parsed_numbers);
        VecDeinit(&parsed_strings);
        DefaultAllocatorDeinit(&alloc);
        VecDeinit(&original_strings);
        VecDeinit(&parsed_numbers);
        VecDeinit(&parsed_strings);
        DefaultAllocatorDeinit(&alloc);
        return success;
        StrDeinit(&empty_str);
        StrDeinit(&parsed_str);
        VecDeinit(&empty_numbers);
        VecDeinit(&empty_strings);
        VecDeinit(&parsed_numbers);
        StrDeinit(&parsed_str);
        VecDeinit(&empty_numbers);
        VecDeinit(&empty_strings);
        VecDeinit(&parsed_numbers);
        VecDeinit(&parsed_strings);
        VecDeinit(&empty_numbers);
        VecDeinit(&empty_strings);
        VecDeinit(&parsed_numbers);
        VecDeinit(&parsed_strings);
        DefaultAllocatorDeinit(&alloc);
        VecDeinit(&empty_strings);
        VecDeinit(&parsed_numbers);
        VecDeinit(&parsed_strings);
        DefaultAllocatorDeinit(&alloc);
        return success;
        }
    
        VecDeinit(&split);
    
        // Test StrSplitToIters
        }
    
        VecDeinit(&iters);
        StrDeinit(&s);
        DefaultAllocatorDeinit(&alloc);
    
        StrDeinit(&rendered);
        VecDeinit(&frames);
        DefaultAllocatorDeinit(&alloc);
        return ok;
    
        ok = ok && (VecLen(&v) == 1024) && (VecAt(&v, 0) == 0) && (VecAt(&v, 1023) == 1023);
        VecDeinit(&v);
        PageAllocatorDeinit(&alloc);
        return ok;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
        }
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool     got = DnsResolve(&r, "LocalHost", 0, SOCKET_KIND_TCP, &out);
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool     got = DnsResolve(&r, "localhost.", 0, SOCKET_KIND_TCP, &out);
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
            if (iteration_count > 2) {
                LOG_ERROR("Should've terminated");
                VecDeinit(&vec);
                return false;
            }
    
        // Should never reach here if bounds checking triggers
        VecDeinit(&vec);
        return true;
    }
            if (idx > 2) {
                LOG_ERROR("Should've terminated");
                VecDeinit(&vec);
                return false;
            }
    
        // Should never reach here if bounds checking triggers
        VecDeinit(&vec);
        return true;
    }
            if (idx < 4) {
                LOG_ERROR("Should've terminated");
                VecDeinit(&vec);
                return false;
            }
    
        // Should never reach here if bounds checking triggers
        VecDeinit(&vec);
        return true;
    }
            if (idx > 3) {
                LOG_ERROR("Should've terminated");
                VecDeinit(&vec);
                return false;
            }
    
        // Should never reach here if bounds checking triggers
        VecDeinit(&vec);
        return true;
    }
            if (idx < 5) {
                LOG_ERROR("Should've terminated");
                VecDeinit(&vec);
                return false;
            }
    
        // Should never reach here if bounds checking triggers
        VecDeinit(&vec);
        return true;
    }
            if (idx > VecLen(&vec)) {
                LOG_ERROR("Should've terminated");
                VecDeinit(&vec);
                return false;
            }
    
        // Should never reach here if bounds checking triggers
        VecDeinit(&vec);
        return true;
    }
            if (idx > 2) {
                LOG_ERROR("Should've terminated");
                VecDeinit(&vec);
                return false;
            }
    
        // Should never reach here if bounds checking triggers
        VecDeinit(&vec);
        return true;
    }
        }
    
        VecDeinit(&matches);
        BitVecDeinit(&source);
        BitVecDeinit(&pattern);
        result        = result && (match_idx == 1);
    
        VecDeinit(&patterns);
        BitVecDeinit(&source);
        DefaultAllocatorDeinit(&alloc);
        result        = result && (match_idx == 1);
    
        VecDeinit(&patterns);
        BitVecDeinit(&source);
        DefaultAllocatorDeinit(&alloc);
    
        ok = ok && VecLen(&v) == 4096 && VecAt(&v, 0) == 0 && VecAt(&v, 4095) == 4095;
        VecDeinit(&v);
        ArenaAllocatorDeinit(&arena);
        return ok;
    
        // Clean up
        VecDeinit(&vec);
    
        // Test with struct type
    
        // Clean up
        VecDeinit(&test_vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        // Test with struct type and 16-byte alignment
    
        // Clean up
        VecDeinit(&test_vec);
    
        HeapAllocatorDeinit(&aligned4);
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        HeapAllocatorDeinit(&aligned8);
        result      = result && (VecCopyDeinit(&vec_d) == (GenericCopyDeinit)TestItemDeinit);
    
        VecDeinit(&vec_a);
        VecDeinit(&vec_b);
        VecDeinit(&vec_c);
    
        VecDeinit(&vec_a);
        VecDeinit(&vec_b);
        VecDeinit(&vec_c);
        VecDeinit(&vec_d);
        VecDeinit(&vec_a);
        VecDeinit(&vec_b);
        VecDeinit(&vec_c);
        VecDeinit(&vec_d);
        VecDeinit(&vec_e);
        VecDeinit(&vec_b);
        VecDeinit(&vec_c);
        VecDeinit(&vec_d);
        VecDeinit(&vec_e);
        VecDeinit(&vec_f);
        VecDeinit(&vec_c);
        VecDeinit(&vec_d);
        VecDeinit(&vec_e);
        VecDeinit(&vec_f);
        VecDeinit(&vec_g);
        VecDeinit(&vec_d);
        VecDeinit(&vec_e);
        VecDeinit(&vec_f);
        VecDeinit(&vec_g);
        VecDeinit(&vec_h);
        VecDeinit(&vec_e);
        VecDeinit(&vec_f);
        VecDeinit(&vec_g);
        VecDeinit(&vec_h);
        VecDeinit(&vec_f);
        VecDeinit(&vec_g);
        VecDeinit(&vec_h);
    
        HeapAllocatorDeinit(&h_default);
    
        // Clean up
        VecDeinit(&src);
        VecDeinit(&clone);
        // Clean up
        VecDeinit(&src);
        VecDeinit(&clone);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
        }
    
        VecDeinit(&runs);
        BitVecDeinit(&bv);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&sv); // This should call StrDeinit on each element
        DefaultAllocatorDeinit(&alloc);
        return result;
        bool result = true; // If we got here, the validation didn't crash
    
        VecDeinit(&sv);
        DefaultAllocatorDeinit(&alloc);
        return result;
        // Clean up
        ComplexItemDeinit(&item);
        VecDeinit(&vec);
    
        return result;
        ComplexItemDeinit(&item2);
        ComplexItemDeinit(&item3);
        VecDeinit(&vec);
    
        return result;
        ComplexItemDeinit(&item2);
        ComplexItemDeinit(&item3);
        VecDeinit(&vec);
    
        return result;
        ComplexItemDeinit(&item2);
        ComplexItemDeinit(&item3);
        VecDeinit(&vec1);
        VecDeinit(&vec2);
        VecDeinit(&vec3);
        ComplexItemDeinit(&item3);
        VecDeinit(&vec1);
        VecDeinit(&vec2);
        VecDeinit(&vec3);
        VecDeinit(&vec4);
        VecDeinit(&vec1);
        VecDeinit(&vec2);
        VecDeinit(&vec3);
        VecDeinit(&vec4);
        VecDeinit(&vec2);
        VecDeinit(&vec3);
        VecDeinit(&vec4);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        // Now test VecInsertRangeFastR in isolation
    
        // Clean up
        VecDeinit(&vec2);
    
        return result;
    
        // Clean up this vector
        VecDeinit(&vec);
    
        // Create a new vector for testing fast delete operations
    
        // Clean up
        VecDeinit(&vec);
    
        // Test with an L-value index
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Test with large number of elements
        VecDeinit(&vec);
        vec = VecInitT(vec, &alloc);
    
        // Test with zero-capacity vector
        VecDeinit(&vec);
        vec = VecInitT(vec, &alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up the temporary vector
        VecDeinit(&temp_vec);
    
        return result;
    
        // Clean up the vector
        VecDeinit(&vec);
    
        return result;
    
        // Clean up the vector
        VecDeinit(&vec);
    
        return result;
    
        // Clean up the vector
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec1);
        VecDeinit(&vec2);
        // Clean up
        VecDeinit(&vec1);
        VecDeinit(&vec2);
    
        return result;
    
        // Clean up the vector
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        // Test with a vector with alignment > 1
    
        // Clean up
        VecDeinit(&aligned_vec);
    
        HeapAllocatorDeinit(&aligned8);
    
        // Clean up
        VecDeinit(&vec);
    
        // Create a vector with 8-byte alignment
    
        // Clean up
        VecDeinit(&aligned_vec);
    
        HeapAllocatorDeinit(&aligned8);
        result = result && (VecFind(&vec, &missing, compare_ints) == SIZE_MAX);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&alloc);
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        // Test with a struct type
    
        // Clean up
        VecDeinit(&test_vec);
    
        DefaultAllocatorDeinit(&alloc);
    
        // Clean up
        VecDeinit(&vec);
    
        // Note: We can't easily test the negative case (invalid vector)
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
        VecDeinit(&src);
        // Clean up
        VecDeinit(&vec);
        VecDeinit(&src);
    
        return result;
    
        // Clean up
        VecDeinit(&vec1);
        VecDeinit(&vec2);
        // Clean up
        VecDeinit(&vec1);
        VecDeinit(&vec2);
    
        return result;
                      VecAt(&dst, 0) == 10 && VecAt(&dst, 1) == 20 && VecAt(&dst, 2) == 30;
    
        VecDeinit(&src);
        VecDeinit(&dst);
        HeapAllocatorDeinit(&local_heap);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        HeapAllocatorDeinit(&local_heap);
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
        VecDeinit(&vec2);
        // Clean up
        VecDeinit(&vec);
        VecDeinit(&vec2);
    
        return result;
        }
    
        VecDeinit(&vec);
        return result;
    }
        }
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
        }
    
        VecDeinit(&no_dot);
        VecDeinit(&w_dot);
        DefaultAllocatorDeinit(&alloc);
    
        VecDeinit(&no_dot);
        VecDeinit(&w_dot);
        DefaultAllocatorDeinit(&alloc);
        return match;
        BitVecPush(VecPtrAt(&vp, 0), true);
        BitVecPrefixMatch(NULL, &vp);
        VecDeinit(&vp);
        DefaultAllocatorDeinit(&alloc);
        return true;
        BitVecPush(VecPtrAt(&vp, 0), true);
        BitVecSuffixMatch(NULL, &vp);
        VecDeinit(&vp);
        DefaultAllocatorDeinit(&alloc);
        return true;
    /// TAGS: Buf, Deinit, Lifecycle
    ///
    #define BufDeinit(b) VecDeinit(b)
    
    ///
        (ValidateVec(vd),                                                                                                  \
         ValidateVec(vs),                                                                                                  \
         VecDeinit(vd),                                                                                                    \
         *(vd) = (TYPE_OF(*(vd))) {.length      = 0,                                                                       \
                                   .capacity    = 0,                                                                       \
Last updated on