mirror of
https://github.com/zeek/zeek.git
synced 2025-10-05 16:18:19 +00:00
new RecordVal Remove() method to clear a field
This commit is contained in:
parent
931cec4e06
commit
c757db2714
2 changed files with 19 additions and 6 deletions
18
src/Val.cc
18
src/Val.cc
|
@ -2879,23 +2879,29 @@ ValPtr RecordVal::SizeVal() const
|
|||
|
||||
void RecordVal::Assign(int field, ValPtr new_val)
|
||||
{
|
||||
auto t = rt->GetFieldType(field);
|
||||
|
||||
if ( new_val )
|
||||
{
|
||||
auto t = rt->GetFieldType(field);
|
||||
(*record_val)[field] = ZVal(new_val, t);
|
||||
(*is_in_record)[field] = true;
|
||||
Modified();
|
||||
}
|
||||
else
|
||||
Remove(field);
|
||||
}
|
||||
|
||||
void RecordVal::Remove(int field)
|
||||
{
|
||||
if ( HasField(field) )
|
||||
{
|
||||
if ( HasField(field) )
|
||||
DeleteIfManaged((*record_val)[field], t);
|
||||
auto t = rt->GetFieldType(field);
|
||||
DeleteIfManaged((*record_val)[field], t);
|
||||
|
||||
(*record_val)[field] = ZVal();
|
||||
(*is_in_record)[field] = false;
|
||||
}
|
||||
|
||||
Modified();
|
||||
Modified();
|
||||
}
|
||||
}
|
||||
|
||||
ValPtr RecordVal::GetFieldOrDefault(int field) const
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue