source:
src/examples/gc_no_raii/src/internal/object_header.h
@
8c8b614
Last change on this file since 8c8b614 was df4aea7, checked in by , 8 years ago | |
---|---|
|
|
File size: 589 bytes |
Rev | Line | |
---|---|---|
[15db1ab] | 1 | #pragma once |
2 | ||
[e47f529] | 3 | #include <stddef.h> |
[15db1ab] | 4 | #include <stdint.h> |
5 | ||
6 | #include "tools.h" | |
7 | ||
[6be0cf9] | 8 | #if DEBUG |
[29ad0ac] | 9 | static const long unsigned int CANARY_VALUE = 0xCAFEBABACAFEBABA; |
[6be0cf9] | 10 | #endif |
[15db1ab] | 11 | |
12 | struct gcpointer_t; | |
[6be0cf9] | 13 | struct gc_object_header; |
[15db1ab] | 14 | |
15 | struct gc_object_header | |
16 | { | |
[6be0cf9] | 17 | #if DEBUG |
[15db1ab] | 18 | void* canary_start; |
19 | #endif | |
20 | ||
[6be0cf9] | 21 | size_t size; |
22 | gcpointer_t* root_chain; | |
23 | gcpointer_t* type_chain; | |
24 | gc_object_header* forward; | |
25 | bool is_forwarded; | |
[15db1ab] | 26 | |
[6be0cf9] | 27 | #if DEBUG |
[15db1ab] | 28 | void* canary_end; |
29 | #endif | |
30 | }; | |
[6be0cf9] | 31 | |
[df4aea7] | 32 | gc_object_header* placement_ctor(void* address, size_t size); |
33 | gc_object_header* placement_copy_ctor(void* address, const gc_object_header* const other); |
Note: See TracBrowser
for help on using the repository browser.