MCPcopy Create free account
hub / github.com/IoLanguage/io / IoObjectData

Class IoObjectData

libs/iovm/source/IoObject_struct.h:32–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30#define IOOBJECT_PERSISTENCE 1
31
32struct IoObjectData {
33 unsigned int markerCount;
34
35 union {
36 void *ptr;
37 double d;
38 uint32_t ui32;
39 } data; // 8 bytes (9+8 = 17)
40
41 // 4*4 = 16 bytes (17+16 = 33)
42 IoTag *tag;
43 PHash *slots;
44 List *listeners;
45 IoObject **protos;
46
47 unsigned int hasDoneLookup : 1; // used to avoid slot lookup loops
48 unsigned int
49 isActivatable : 1; // if true, upon activation, call activate slot
50 unsigned int
51 isDirty : 1; // set to true when the object changes its storable state
52
53 // optimizations
54
55 unsigned int ownsSlots : 1; // if true, io_free slots hash table when
56 // io_freeing object
57 unsigned int
58 isSymbol : 1; // true if the object is a unqiue sequence - a symbol
59 unsigned int isLocals : 1; // true if the Object is a locals object
60 unsigned int isReferenced : 1; // 1 bit ref counter
61 unsigned int sentWillFree : 1; // 1 is sent willFree mes
62 // unsigned int isPObject : 1; // check before type tests?
63};
64
65#define IoObject_deref(self) \
66 ((IoObjectData *)(((CollectorMarker *)(self))->object))

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected