mirror of
https://github.com/zeek/zeek.git
synced 2025-10-07 00:58:19 +00:00
Merge remote-tracking branch 'origin/topic/vern/vec-slice-bug'
* origin/topic/vern/vec-slice-bug: btest to catch vector slice assignment issues bug fix for vector slice assignment
This commit is contained in:
commit
0793a38cc5
5 changed files with 32 additions and 11 deletions
4
CHANGES
4
CHANGES
|
@ -1,3 +1,7 @@
|
|||
5.0.0-dev.70 | 2022-01-25 13:52:00 -0700
|
||||
|
||||
* bug fix for vector slice assignment (Vern Paxson, Corelight)
|
||||
|
||||
5.0.0-dev.67 | 2022-01-25 12:25:48 +0000
|
||||
|
||||
* updated Bro->Zeek in comments in the source tree (Vern Paxson, Corelight)
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
5.0.0-dev.67
|
||||
5.0.0-dev.70
|
||||
|
|
11
src/Val.cc
11
src/Val.cc
|
@ -3326,19 +3326,10 @@ bool VectorVal::Insert(unsigned int index, ValPtr element)
|
|||
auto n = vector_val->size();
|
||||
|
||||
if ( index < n )
|
||||
{ // May need to delete previous element
|
||||
{ // Find location within existing vector elements.
|
||||
it = std::next(vector_val->begin(), index);
|
||||
if ( yield_types )
|
||||
{
|
||||
if ( *it )
|
||||
ZVal::DeleteIfManaged(**it, element->GetType());
|
||||
types_it = std::next(yield_types->begin(), index);
|
||||
}
|
||||
else if ( managed_yield )
|
||||
{
|
||||
if ( *it )
|
||||
ZVal::DeleteManagedType(**it);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
2
testing/btest/Baseline/language.vector-slice-assign/out
Normal file
2
testing/btest/Baseline/language.vector-slice-assign/out
Normal file
|
@ -0,0 +1,2 @@
|
|||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||
[[seq=4], [seq=5], [seq=3], [seq=1], [seq=2], [seq=6], [seq=7]]
|
24
testing/btest/language/vector-slice-assign.zeek
Normal file
24
testing/btest/language/vector-slice-assign.zeek
Normal file
|
@ -0,0 +1,24 @@
|
|||
# @TEST-EXEC: zeek -b %INPUT >out
|
||||
# @TEST-EXEC: btest-diff out
|
||||
|
||||
type testrec: record {
|
||||
seq: count;
|
||||
};
|
||||
|
||||
function make_recs(seqs: vector of count): vector of testrec
|
||||
{
|
||||
local r: vector of testrec;
|
||||
for (i in seqs)
|
||||
r += testrec($seq=seqs[i]);
|
||||
return r;
|
||||
}
|
||||
|
||||
event zeek_init()
|
||||
{
|
||||
local seqs: vector of count = {1, 2, 3, 4, 5, 6, 7};
|
||||
local v = make_recs(seqs);
|
||||
local tmp = v[0:2];
|
||||
v[0:2] = v[3:5];
|
||||
v[3:5] = tmp;
|
||||
print v;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue