bug fix for vector slice assignment

This commit is contained in:
Vern Paxson 2022-01-25 10:47:15 -08:00
parent 3d9d6e953b
commit 63bfae180a

View file

@ -3323,20 +3323,11 @@ bool VectorVal::Insert(unsigned int index, ValPtr element)
auto n = vector_val->size(); auto n = vector_val->size();
if ( index < n ) if ( index < n )
{ // May need to delete previous element { // Find location within existing vector elements.
it = std::next(vector_val->begin(), index); it = std::next(vector_val->begin(), index);
if ( yield_types ) if ( yield_types )
{
if ( *it )
ZVal::DeleteIfManaged(**it, element->GetType());
types_it = std::next(yield_types->begin(), index); types_it = std::next(yield_types->begin(), index);
} }
else if ( managed_yield )
{
if ( *it )
ZVal::DeleteManagedType(**it);
}
}
else else
{ {
it = vector_val->end(); it = vector_val->end();