Beispiel #1
0
  inline Class* Object::lookup_begin(STATE) {
    if(reference_p()) {
      return klass_;
    }

    return state->globals().special_classes[((uintptr_t)this) & SPECIAL_CLASS_MASK].get();
  }
Beispiel #2
0
  inline Class* Object::direct_class(STATE) const {
    if(reference_p()) {
      return klass();
    }

    return state->globals().special_classes[((uintptr_t)this) & SPECIAL_CLASS_MASK].get();
  }
Beispiel #3
0
 bool check_type(object_type type) const {
   return reference_p() && flags().obj_type == type;
 }
Beispiel #4
0
 bool is_untrusted_p() const {
   if(reference_p()) {
     return flags().Untrusted == 1;
   }
   return false;
 }
Beispiel #5
0
 bool is_tainted_p() const {
   if(reference_p()) {
     return flags().Tainted == 1;
   }
   return false;
 }
Beispiel #6
0
 void validate() const {
   assert(this && (!reference_p() || (type_id() > InvalidType && type_id() < LastObjectType)));
 }
Beispiel #7
0
 bool check_type(object_type type) const {
   return reference_p() && obj_type_ == type;
 }
Beispiel #8
0
 void MemoryHeader::untrack_reference(STATE) {
   if(reference_p()) {
     state->memory()->untrack_reference(this);
   }
 }