source: src/examples/gc_no_raii/src/internal/object_header.h @ d67a9a1

aaron-thesisarm-ehcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerresolv-newwith_gc
Last change on this file since d67a9a1 was d67a9a1, checked in by Thierry Delisle <tdelisle@…>, 6 years ago

pool alloc functional

  • Property mode set to 100644
File size: 606 bytes
Line 
1#pragma once
2
3#include <stddef.h>
4#include <stdint.h>
5
6#include "tools.h"
7
8#if DEBUG
9        static const void* CANARY_VALUE = (void*)0xCAFEBABACAFEBABA;
10#endif
11
12struct gcpointer_t;
13struct gc_object_header;
14
15struct gc_object_header
16{
17        #if DEBUG
18                void* canary_start;
19        #endif
20
21        size_t          size;
22        gcpointer_t*    root_chain;
23        gcpointer_t*    type_chain;
24        gc_object_header*       forward;
25        bool                    is_forwarded;
26
27        #if DEBUG
28                void* canary_end;
29        #endif
30};
31
32gc_object_header* gc_object_header_placement_ctor(void* address, size_t size);
33gc_object_header* gc_object_header_placement_copy_ctor(void* address, gc_object_header* other);
Note: See TracBrowser for help on using the repository browser.