mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 16:48:19 +00:00
Fix copy() to work with a vector that has trailing holes
Previously, the trailing holes would not be preserved in the copy.
This commit is contained in:
parent
d00748a2e7
commit
819fc1aac0
3 changed files with 7 additions and 2 deletions
|
@ -3706,8 +3706,7 @@ ValPtr VectorVal::DoClone(CloneState* state)
|
||||||
for ( auto i = 0; i < n; ++i )
|
for ( auto i = 0; i < n; ++i )
|
||||||
{
|
{
|
||||||
auto elem = At(i);
|
auto elem = At(i);
|
||||||
if ( elem )
|
vv->Assign(i, elem ? elem->Clone(state) : nullptr);
|
||||||
vv->Assign(i, elem->Clone(state));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return vv;
|
return vv;
|
||||||
|
|
|
@ -75,3 +75,4 @@ slicing assignment grow (PASS)
|
||||||
slicing assignment shrink (PASS)
|
slicing assignment shrink (PASS)
|
||||||
? operator (PASS)
|
? operator (PASS)
|
||||||
copy of a vector with holes (PASS)
|
copy of a vector with holes (PASS)
|
||||||
|
copy of a vector with trailing holes, [0, 2, 3, 77, , ], [0, 2, 3, 77, , ]
|
||||||
|
|
|
@ -200,4 +200,9 @@ event zeek_init()
|
||||||
# Test copying of a vector with holes, as this used to crash.
|
# Test copying of a vector with holes, as this used to crash.
|
||||||
local v19 = copy(v5);
|
local v19 = copy(v5);
|
||||||
test_case( "copy of a vector with holes", |v5| == |v19| );
|
test_case( "copy of a vector with holes", |v5| == |v19| );
|
||||||
|
# Even after removing some elements at the end, any trailing holes should
|
||||||
|
# be preserved after copying;
|
||||||
|
v5[6:] = vector();
|
||||||
|
local v20 = copy(v5);
|
||||||
|
print "copy of a vector with trailing holes", v5, v20;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue