mirror of
https://github.com/zeek/zeek.git
synced 2025-10-11 19:18:19 +00:00
destructor cleanup from ZAM_vector/ZAM_record
This commit is contained in:
parent
5084584020
commit
498d8c4bde
1 changed files with 20 additions and 1 deletions
21
src/Val.cc
21
src/Val.cc
|
@ -2868,6 +2868,12 @@ RecordVal::RecordVal(RecordTypePtr t, bool init_fields) : Val(std::move(t))
|
||||||
|
|
||||||
RecordVal::~RecordVal()
|
RecordVal::~RecordVal()
|
||||||
{
|
{
|
||||||
|
auto n = record_val->size();
|
||||||
|
|
||||||
|
for ( unsigned int i = 0; i < n; ++i )
|
||||||
|
if ( HasField(i) )
|
||||||
|
DeleteIfManaged((*record_val)[i], rt->GetFieldType(i));
|
||||||
|
|
||||||
delete record_val;
|
delete record_val;
|
||||||
delete is_in_record;
|
delete is_in_record;
|
||||||
}
|
}
|
||||||
|
@ -3194,10 +3200,23 @@ VectorVal::VectorVal(VectorTypePtr t) : Val(t)
|
||||||
|
|
||||||
VectorVal::~VectorVal()
|
VectorVal::~VectorVal()
|
||||||
{
|
{
|
||||||
delete vector_val;
|
if ( yield_types )
|
||||||
|
{
|
||||||
|
auto n = yield_types->size();
|
||||||
|
for ( auto i = 0; i < n; ++i )
|
||||||
|
DeleteIfManaged((*vector_val)[i], (*yield_types)[i]);
|
||||||
delete yield_types;
|
delete yield_types;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if ( IsManagedType(yield_type) )
|
||||||
|
{
|
||||||
|
for ( auto& elem : *vector_val )
|
||||||
|
DeleteManagedType(elem);
|
||||||
|
}
|
||||||
|
|
||||||
|
delete vector_val;
|
||||||
|
}
|
||||||
|
|
||||||
ValPtr VectorVal::SizeVal() const
|
ValPtr VectorVal::SizeVal() const
|
||||||
{
|
{
|
||||||
return val_mgr->Count(uint32_t(vector_val->size()));
|
return val_mgr->Count(uint32_t(vector_val->size()));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue