A lot of work
This commit is contained in:
+12
-2
@@ -97,8 +97,18 @@ typedef struct {
|
||||
ObjectGCInfo gc;
|
||||
} LispObject;
|
||||
|
||||
static ALWAYS_INLINE void MAKE_OBJ_IMMORTAL(LispVal *obj) {
|
||||
((LispObject *) obj)->gc.immortal = true;
|
||||
static ALWAYS_INLINE bool OBJECTP(LispVal *val) {
|
||||
return EXTRACT_TAG(val) == LISP_OBJECT_TAG;
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE void SET_OBJECT_MARKED(LispVal *val, bool marked) {
|
||||
assert(OBJECTP(val));
|
||||
((LispObject *) val)->gc.mark = marked;
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE bool OBJECT_MARKED_P(LispVal *val) {
|
||||
assert(OBJECTP(val));
|
||||
return ((LispObject *) val)->gc.mark;
|
||||
}
|
||||
|
||||
static ALWAYS_INLINE LispValType TYPE_OF(LispVal *val) {
|
||||
|
||||
Reference in New Issue
Block a user