O(1) unlink + relink
| 58 | void gc_link ( gc_root * root ); // add to root's list |
| 59 | void gc_assign ( gc_root * new_root ); // O(1) unlink + relink |
| 60 | bool gc_is_alive() const { return (gc_magic & 0xFFFF0000u) == GC_MAGIC_ALIVE_PREFIX; } |
| 61 | uint16_t gc_type_tag() const { return gc_magic & 0xFFFFu; } |
| 62 | const char * gc_type_name() const; // "TypeDecl", "Expression", or "gc_node" |
| 63 | void gc_verify() const; // asserts gc_is_alive(), reports gc_id on failure |