Remove VectorVal::vector_type member

This commit is contained in:
Jon Siwek 2020-05-09 14:14:00 -07:00
parent d4dba40727
commit afd939ceb1
2 changed files with 3 additions and 6 deletions

View file

@ -2982,7 +2982,6 @@ VectorVal::VectorVal(VectorType* t) : VectorVal({NewRef{}, t})
VectorVal::VectorVal(IntrusivePtr<VectorType> t) : Val(t.get()) VectorVal::VectorVal(IntrusivePtr<VectorType> t) : Val(t.get())
{ {
vector_type = std::move(t);
val.vector_val = new vector<Val*>(); val.vector_val = new vector<Val*>();
} }
@ -3002,7 +3001,7 @@ IntrusivePtr<Val> VectorVal::SizeVal() const
bool VectorVal::Assign(unsigned int index, IntrusivePtr<Val> element) bool VectorVal::Assign(unsigned int index, IntrusivePtr<Val> element)
{ {
if ( element && if ( element &&
! same_type(element->Type(), vector_type->Yield().get(), false) ) ! same_type(element->Type(), Type()->AsVectorType()->Yield().get(), false) )
return false; return false;
Val* val_at_index = nullptr; Val* val_at_index = nullptr;
@ -3043,7 +3042,7 @@ bool VectorVal::AssignRepeat(unsigned int index, unsigned int how_many,
bool VectorVal::Insert(unsigned int index, Val* element) bool VectorVal::Insert(unsigned int index, Val* element)
{ {
if ( element && if ( element &&
! same_type(element->Type(), vector_type->Yield().get(), false) ) ! same_type(element->Type(), Type()->AsVectorType()->Yield().get(), false) )
{ {
Unref(element); Unref(element);
return false; return false;
@ -3130,7 +3129,7 @@ unsigned int VectorVal::ResizeAtLeast(unsigned int new_num_elements)
IntrusivePtr<Val> VectorVal::DoClone(CloneState* state) IntrusivePtr<Val> VectorVal::DoClone(CloneState* state)
{ {
auto vv = make_intrusive<VectorVal>(vector_type); auto vv = make_intrusive<VectorVal>(IntrusivePtr{NewRef{}, Type()->AsVectorType()});
vv->val.vector_val->reserve(val.vector_val->size()); vv->val.vector_val->reserve(val.vector_val->size());
state->NewClone(this, vv); state->NewClone(this, vv);

View file

@ -1077,8 +1077,6 @@ public:
protected: protected:
void ValDescribe(ODesc* d) const override; void ValDescribe(ODesc* d) const override;
IntrusivePtr<Val> DoClone(CloneState* state) override; IntrusivePtr<Val> DoClone(CloneState* state) override;
IntrusivePtr<VectorType> vector_type;
}; };
// Checks the given value for consistency with the given type. If an // Checks the given value for consistency with the given type. If an