1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00
guile/api/gc-allocation-kind.h
Andy Wingo 521cd44ebd Add gc_allocation_kind argument to gc_allocate
Adapt all users.  Will eventually allow for mmc to have untagged
allocations.
2025-03-07 13:37:59 +01:00

19 lines
805 B
C

#ifndef GC_ALLOCATION_KIND_H
#define GC_ALLOCATION_KIND_H
enum gc_allocation_kind {
// An object whose type can be inspected at run-time based on its contents,
// and whose fields be traced via the gc_trace_object procedure.
GC_ALLOCATION_TAGGED,
// Like GC_ALLOCATION_TAGGED, but not containing any fields that reference
// GC-managed objects. The GC may choose to handle these specially.
GC_ALLOCATION_TAGGED_POINTERLESS,
// A raw allocation whose type cannot be inspected at trace-time, and whose
// fields should be traced conservatively.
GC_ALLOCATION_UNTAGGED_CONSERVATIVE,
// A raw allocation whose type cannot be inspected at trace-time, but
// containing no fields that reference GC-managed objects.
GC_ALLOCATION_UNTAGGED_POINTERLESS
};
#endif // GC_ALLOCATION_KIND_H