inline Class* Object::lookup_begin(STATE) { if(reference_p()) { return klass_; } return state->globals().special_classes[((uintptr_t)this) & SPECIAL_CLASS_MASK].get(); }
inline Class* Object::direct_class(STATE) const { if(reference_p()) { return klass(); } return state->globals().special_classes[((uintptr_t)this) & SPECIAL_CLASS_MASK].get(); }
bool check_type(object_type type) const { return reference_p() && flags().obj_type == type; }
bool is_untrusted_p() const { if(reference_p()) { return flags().Untrusted == 1; } return false; }
bool is_tainted_p() const { if(reference_p()) { return flags().Tainted == 1; } return false; }
void validate() const { assert(this && (!reference_p() || (type_id() > InvalidType && type_id() < LastObjectType))); }
bool check_type(object_type type) const { return reference_p() && obj_type_ == type; }
void MemoryHeader::untrack_reference(STATE) { if(reference_p()) { state->memory()->untrack_reference(this); } }