Object* ObjectMemory::new_object_typed(STATE, Class* cls, size_t bytes, object_type type) { Object* obj = new_object_typed_dirty(state, cls, bytes, type); if(unlikely(!obj)) return NULL; obj->clear_fields(bytes); return obj; }
T* new_object_bytes_dirty(STATE, Class* cls, size_t& bytes) { bytes = ObjectHeader::align(sizeof(T) + bytes); T* obj = static_cast<T*>(new_object_typed_dirty(state, cls, bytes, T::type)); return obj; }
T* new_object_bytes_dirty(Class* cls, size_t& bytes) { bytes = ObjectHeader::align(sizeof(T) + bytes); return static_cast<T*>(new_object_typed_dirty(cls, bytes, T::type)); }
Object* VM::new_object_typed(Class* cls, size_t size, object_type type) { Object* obj = new_object_typed_dirty(cls, size, type); if(obj) obj->clear_fields(size); return obj; }