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)
    /// TAGS: Buf, Deinit, Lifecycle
    ///
    #define BufDeinit(b) VecDeinit(b)
    
    ///
        (ValidateVec(vd),                                                                                                  \
         ValidateVec(vs),                                                                                                  \
         VecDeinit(vd),                                                                                                    \
         *(vd) = (TYPE_OF(*(vd))) {.length      = 0,                                                                       \
                                   .capacity    = 0,                                                                       \
    
    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 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;
        if (!self)
            return;
        VecDeinit(&self->specs);
    }
            MapDeinit(&self->live);
        if (self->freed.allocator)
            VecDeinit(&self->freed);
    
        HeapAllocatorDeinit(&self->meta);
            }
        }
        VecDeinit(&dc);
        HeapAllocatorDeinit(&ha);
        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));
            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(&e->module_path);
        }
        VecDeinit(&self->entries);
        MemSet(self, 0, sizeof(*self));
    }
            return;
        BufDeinit(&self->data);
        VecDeinit(&self->sections);
        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);
        StrDeinit(&self->name);
        StrDeinit(&self->target);
        VecDeinit(&self->rdata);
    }
            DnsRecordDeinit(r);
        }
        VecDeinit(list);
    }
    
        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));
            return;
        StrDeinit(&self->raw);
        VecDeinit(&self->entries);
        MemSet(self, 0, sizeof(*self));
    }
        }
        StrDeinit(&req->url);
        VecDeinit(&req->headers);
        MemSet(req, 0, sizeof(*req));
    }
        }
        StrDeinit(&response->body);
        VecDeinit(&response->headers);
        MemSet(response, 0, sizeof(*response));
    }
        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));
    }
            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->segments);
        VecDeinit(&self->symbols);
        BufDeinit(&self->data);
        VecDeinit(&self->sections);
        VecDeinit(&self->segments);
        VecDeinit(&self->symbols);
        VecDeinit(&self->dynamic_symbols);
        VecDeinit(&self->sections);
        VecDeinit(&self->segments);
        VecDeinit(&self->symbols);
        VecDeinit(&self->dynamic_symbols);
        MemSet(self, 0, sizeof(*self));
        VecDeinit(&self->segments);
        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));
            }
    
            VecDeinit(&addrs);
            DnsResolverDeinit(&r);
        }
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Clean up
        VecDeinit(&vec);
    
        return result;
    
        // Unreachable on real code.
        VecDeinit(&vec);
        return false;
    }
    
        // Unreachable on real code.
        VecDeinit(&vec);
        return false;
    }
        // 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;
        bool result = (VecLen(&dst) == 3) && (VecAt(&dst, 0) == 1) && (VecAt(&dst, 1) == 2) && (VecAt(&dst, 2) == 3);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (VecLen(&dst) == 3) && (VecAt(&dst, 0) == 1);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (VecLen(&dst) == 3);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (VecLen(&dst) == 3) && (VecAt(&dst, 0) == 1) && (VecAt(&dst, 1) == 2) && (VecAt(&dst, 2) == 3);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = cloned && (VecLen(&dst) == 3);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&local);
        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);
        bool result = ok && (VecLen(&vec) == 100) && (VecCapacity(&vec) >= 100);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == 1) && (g_deinit_count == 3);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecCapacity(&vec) >= 64);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == 50);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == 10) && (VecCapacity(&vec) == 16);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecAt(&vec, 0) == 0x11111111 && VecAt(&vec, probe_index) == 0);
    
        VecDeinit(&vec);
        HeapAllocatorDeinit(&heap);
        return result;
        bool result = (ok == false) && (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        HeapAllocatorDeinit(&heap);
        return result;
        bool result = (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        // Drop the hook so the final teardown does not re-run the counter.
        vec.copy_deinit = NULL;
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        }
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (VecLen(&vec) == 5);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (VecCapacity(&vec) == 0);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (VecCapacity(&vec) == 5);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
    
        // Unreachable on real code: the structural validator LOG_FATALs above.
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return false;
    
        // Unreachable: the guard LOG_FATALs above.
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&alloc);
        return false;
    
        // 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;
    // element before storage is freed.
    bool test_deinit_runs_deinit_once_per_element(void) {
        WriteFmt("Testing VecDeinit invokes copy_deinit once per element\n");
    
        DefaultAllocator local = DefaultAllocatorInit();
    
        g_deinit_calls = 0;
        VecDeinit(&vec);
    
        bool result = (g_deinit_calls == 3);
    
        // 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;
    }
        bool result = (ok == false) && (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        return result;
    }
        result = result && found_all;
    
        VecDeinit(&vec);
        return result;
    }
        }
    
        VecDeinit(&vec);
        return result;
    }
        }
    
        VecDeinit(&vec);
        return result;
    }
        }
    
        VecDeinit(&vec);
        return result;
    }
        result = result && found13;
    
        VecDeinit(&vec);
        return result;
    }
        result = result && (VecAt(&vec, N).value >= 0);
    
        VecDeinit(&ins);
        VecDeinit(&vec);
        return result;
    
        VecDeinit(&ins);
        VecDeinit(&vec);
        return result;
    }
        result = result && (VecAt(&vec, 3).value == 200);
    
        VecDeinit(&vec);
        return result;
    }
        result = result && (VecAt(&vec, 1).value == 11);
    
        VecDeinit(&vec);
        return result;
    }
        result      = result && (VecAt(&vec, 3).value == 300);
    
        VecDeinit(&vec);
        return result;
    }
        result = result && (VecAt(&vec, 3).value == 13);
    
        g_fail_at = 0; // let VecDeinit clean up the live originals
        VecDeinit(&vec);
        return result;
    
        g_fail_at = 0; // let VecDeinit clean up the live originals
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        return result;
    }
        bool result = (ret == false) && (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, 2) == 20) && (VecAt(&vec, 3) == 30);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = ret && (VecLen(&vec) == 4) && (VecAt(&vec, 0) == 77) && (VecAt(&vec, 1) == 11);
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, N - 1) == 999999) && (VecAt(&vec, N) == (u64)(N - 1));
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (ret == false) && (ti_deinit_count == 0) && (VecLen(&vec) == 3);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (ret == false) && (ti_deinit_count == 2) && (VecLen(&vec) == 3);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (ret == false) && (ti_deinit_count == 1) && (VecLen(&vec) == 3);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (ret == false) && (ti_deinit_count == 1) && (g_deinit_saw_zero == false) && (VecLen(&vec) == 3);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (ret == false) && (ti_deinit_count == 2) && (VecLen(&vec) == 3);
    
        VecDeinit(&vec);
        return result;
    }
                      !deinit_tags_contain(1) && (VecLen(&vec) == 1) && (VecAt(&vec, 0).tag == 1);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (ret == false) && (ti_deinit_count == 1) && (VecLen(&vec) == 3);
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, 2).tag == 3);
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, 2).tag == 3);
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, N - 2).tag == (int)(N - 1)) && (VecAt(&vec, N - 1).tag == (int)N);
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, 2).tag == 3);
    
        VecDeinit(&vec);
        return result;
    }
            ok && (VecLen(&vec) == 3) && (VecAt(&vec, 0) == 111u) && (VecAt(&vec, 1) == 222u) && (VecAt(&vec, 2) == 333u);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
            ok && (VecLen(&vec) == 3) && (VecAt(&vec, 0) == 444u) && (VecAt(&vec, 1) == 555u) && (VecAt(&vec, 2) == 666u);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = ok && (VecLen(&vec) == 1) && (VecAt(&vec, 0) == 777u);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&local);
        return result;
        bool result = (ok == false) && (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        result = result && (DebugAllocatorOverflows(&dbg) == 0);
        DebugAllocatorDeinit(&dbg);
        bool result = (ok == false) && (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        return result;
    }
        result = result && (VecAt(&vec, 5).value == 0);
    
        g_fail_at = 0; // let VecDeinit run copy_deinit on the live originals
        VecDeinit(&vec);
        return result;
    
        g_fail_at = 0; // let VecDeinit run copy_deinit on the live originals
        VecDeinit(&vec);
        return result;
    }
    
        g_fail_at = 0;
        VecDeinit(&vec);
        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);
    
        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;
        bool result = (VecLen(&vec) == 0);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (out[0] == 10) && (out[1] == 20);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (out[0] == 11) && (out[1] == 22);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_deinit_count == 3);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_deinit_count == 3);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_deinit_count == 2);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_deinit_count == 3);
    
        VecDeinit(&vec);
        return result;
    }
            (g_deinit_nvals == 3) && (g_deinit_vals[0] == 10) && (g_deinit_vals[1] == 20) && (g_deinit_vals[2] == 30);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == 3) && (*VecPtrAt(&vec, 4) == 0);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == 3) && (*VecPtrAt(&vec, 4) == 0);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == (u64)N - K);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_freed[0] == 1 && g_freed[1] == 1);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_freed[0] == 1 && g_freed[1] == 1);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_freed[2] == 0 && g_freed[0] == 1 && g_freed[1] == 1);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_freed[0] == 1 && g_freed[1] == 1 && g_freed[2] == 1);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (g_freed[1] == 1 && g_freed[2] == 1 && g_freed[3] == 1);
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, 20000) == 20002);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == (u64)N - K) && (VecAt(&vec, 0) == (int)K) && (VecAt(&vec, 19999) == (int)(N - 1));
    
        VecDeinit(&vec);
        return result;
    }
                      (VecAt(&vec, (u64)(N - 3)) == (int)(N - 1));
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == 8 && *VecPtrAt(&vec, 9) == 0);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == 8 && *VecPtrAt(&vec, 9) == 0);
    
        VecDeinit(&vec);
        return result;
    }
        bool result = (VecLen(&vec) == (u64)N - K) && (VecAt(&vec, 0) == (int)K);
    
        VecDeinit(&vec);
        return result;
    }
        result = result && (VecAt(&vec, old_len - 2) == (u64)(old_len - 1));
    
        VecDeinit(&vec);
        return result;
    }
        result = result && (VecAt(&vec, 0) == (u64)old_len);
    
        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;
            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;
    }
    
        // 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);
    
        // Same self-consistency on a higher-alignment allocator: the stride is
    
        // Clean up
        VecDeinit(&aligned_vec);
    
        HeapAllocatorDeinit(&aligned8);
    
        // Clean up
        VecDeinit(&vec);
    
        // The element stride is `sizeof(T)` regardless of the allocator's base
    
        // Clean up
        VecDeinit(&aligned_vec);
    
        HeapAllocatorDeinit(&aligned8);
        result = result && (VecFind(&vec, &missing, compare_ints) == SIZE_MAX);
    
        VecDeinit(&vec);
        DefaultAllocatorDeinit(&alloc);
        return result;
        }
    
        VecDeinit(&vec);
        HeapAllocatorDeinit(&alloc);
        return result;
                      (VecAt(&dst, 3) == 40);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&alloc);
    
        VecDeinit(&src);
        VecDeinit(&dst);
        DefaultAllocatorDeinit(&alloc);
        return result;
        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;
        BitVecPrefixMatch(NULL, &patterns);
    
        VecDeinit(&patterns);
        DefaultAllocatorDeinit(&alloc);
        return true;
        BitVecSuffixMatch(NULL, &patterns);
    
        VecDeinit(&patterns);
        DefaultAllocatorDeinit(&alloc);
        return true;
        }
    
        VecDeinit(&runs);
        BitVecDeinit(&bv);
        DefaultAllocatorDeinit(&alloc);
        }
    
        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);
        }
    
        VecDeinit(&matches);
        BitVecDeinit(&source);
        BitVecDeinit(&pattern);
    
        ok = ok && VecLen(&v) == 4096 && VecAt(&v, 0) == 0 && VecAt(&v, 4095) == 4095;
        VecDeinit(&v);
        ArenaAllocatorDeinit(&arena);
        return ok;
    
        ok = ok && (VecLen(&v) == 1024) && (VecAt(&v, 0) == 0) && (VecAt(&v, 1023) == 1023);
        VecDeinit(&v);
        PageAllocatorDeinit(&alloc);
        return ok;
        }
    
        VecDeinit(&split);
    
        // Test StrSplitToIters
        }
    
        VecDeinit(&iters);
        StrDeinit(&s);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&iters);
        StrDeinit(&s);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&split);
        StrDeinit(&s);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&split);
        StrDeinit(&s);
        DefaultAllocatorDeinit(&alloc);
        StrIters iters            = StrSplitToIters(&s, ",");
    
        VecDeinit(&iters);
        GENERIC_VEC(&s)->__magic ^= 0x1;
        StrDeinit(&s);
    
        GENERIC_VEC(VecPtrAt(&strs, 0))->__magic ^= 0x1;
        VecDeinit(&strs);
        StrDeinit(&s);
        DefaultAllocatorDeinit(&alloc);
        bool produced = VecLen(&parts) == 4 && DebugAllocatorLiveCount(&dbg) > before;
    
        VecDeinit(&parts); // invokes str_deinit per element on real code.
        size after = DebugAllocatorLiveCount(&dbg);
        }
    
        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;
    
        StrDeinit(&rendered);
        VecDeinit(&frames);
        DefaultAllocatorDeinit(&alloc);
        return ok;
        }
    
        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);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "10.0.0.1:80");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "10.0.0.2:80");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "10.0.0.3:80");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
            StrDeinit(p);
        }
        VecDeinit(&paths);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
            StrDeinit(p);
        }
        VecDeinit(&paths);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
            StrDeinit(p);
        }
        VecDeinit(&paths);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "1.2.3.4:80");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
                  v4_is(VecPtrAt(&out, 1), a, "9.10.11.12:1234");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
                  v6_is(VecPtrAt(&out, 1), a, "[2606::1]:443");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v6_is(VecPtrAt(&out, 0), a, "[::1]:53");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "1.2.3.4:80");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "1.2.3.4:80");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
    
        StrDeinit(&name);
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "1.2.3.4:80");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
                  v4_is(VecPtrAt(&out, 1), a, "9.10.11.12:9090");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "203.0.113.7:9999");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = got && VecLen(&out) == 1 && v4_is(VecPtrAt(&out, 0), a, "1.2.3.4:65535");
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        bool ok = !got && VecLen(&out) == 0;
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
    
        StrDeinit(&spec);
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&out);
        DnsResolverDeinit(&r);
        DefaultAllocatorDeinit(&alloc);
        }
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
        }
    
        VecDeinit(&no_dot);
        VecDeinit(&w_dot);
        DefaultAllocatorDeinit(&alloc);
    
        VecDeinit(&no_dot);
        VecDeinit(&w_dot);
        DefaultAllocatorDeinit(&alloc);
        return match;
        }
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
                     BufData(&buf)[14] == 0x01 && BufData(&buf)[15] == 0x00 && BufData(&buf)[16] == 0x01;
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
        bool match = ok && BufLength(&buf) == 81 && BufData(&buf)[12] == 63;
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
        }
    
        VecDeinit(&no_dot);
        VecDeinit(&w_dot);
        DefaultAllocatorDeinit(&alloc);
    
        VecDeinit(&no_dot);
        VecDeinit(&w_dot);
        DefaultAllocatorDeinit(&alloc);
        return match;
        bool match = ok && BufLength(&buf) == 237;
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
        bool match = ok && BufLength(&buf) == 271;
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
        }
    
        VecDeinit(&buf);
        StrDeinit(&name);
        DefaultAllocatorDeinit(&alloc);
        bool match = !ok; // empty internal label must be rejected.
    
        VecDeinit(&buf);
        DefaultAllocatorDeinit(&alloc);
        return match;
    
        // VecDeinit runs http_header_deinit on the surviving copy.
        VecDeinit(&headers);
        ok = ok && (DebugAllocatorLiveCount(&dbg) == 0);
    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(&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;
            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 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;
    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;
Last updated on