mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Deprecate TableVal::ConvertToList() and TableVal::ConvertToPureList()
Replaced with ToListVal() and ToPureListVal() that return IntrusivePtr
This commit is contained in:
parent
5f57ceb70a
commit
b096e552d3
10 changed files with 37 additions and 38 deletions
|
@ -535,17 +535,14 @@ int CompositeHash::SingleTypeKeySize(BroType* bt, const Val* v,
|
|||
|
||||
sz = SizeAlign(sz, sizeof(int));
|
||||
TableVal* tv = const_cast<TableVal*>(v->AsTableVal());
|
||||
ListVal* lv = tv->ConvertToList();
|
||||
auto lv = tv->ToListVal();
|
||||
for ( int i = 0; i < tv->Size(); ++i )
|
||||
{
|
||||
Val* key = lv->Idx(i).get();
|
||||
sz = SingleTypeKeySize(key->Type(), key, type_check, sz, false,
|
||||
calc_static_size);
|
||||
if ( ! sz )
|
||||
{
|
||||
Unref(lv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( ! bt->IsSet() )
|
||||
{
|
||||
|
@ -553,15 +550,10 @@ int CompositeHash::SingleTypeKeySize(BroType* bt, const Val* v,
|
|||
sz = SingleTypeKeySize(val->Type(), val.get(), type_check, sz,
|
||||
false, calc_static_size);
|
||||
if ( ! sz )
|
||||
{
|
||||
Unref(lv);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Unref(lv);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -1361,16 +1361,11 @@ void id_to_maskedvallist(const char* id, maskedvalue_list* append_to,
|
|||
|
||||
if ( v->Type()->Tag() == TYPE_TABLE )
|
||||
{
|
||||
ListVal* lv = v->AsTableVal()->ConvertToPureList();
|
||||
auto lv = v->AsTableVal()->ToPureListVal();
|
||||
|
||||
for ( const auto& val : lv->Vals() )
|
||||
if ( ! val_to_maskedval(val.get(), append_to, prefix_vector) )
|
||||
{
|
||||
Unref(lv);
|
||||
return;
|
||||
}
|
||||
|
||||
Unref(lv);
|
||||
}
|
||||
|
||||
else
|
||||
|
|
|
@ -1218,11 +1218,10 @@ bool NetSessions::IsLikelyServerPort(uint32_t port, TransportProto proto) const
|
|||
|
||||
if ( ! have_cache )
|
||||
{
|
||||
ListVal* lv = likely_server_ports->ConvertToPureList();
|
||||
auto lv = likely_server_ports->ToPureListVal();
|
||||
for ( int i = 0; i < lv->Length(); i++ )
|
||||
port_cache.insert(lv->Idx(i)->InternalUnsigned());
|
||||
have_cache = true;
|
||||
Unref(lv);
|
||||
}
|
||||
|
||||
// We exploit our knowledge of PortVal's internal storage mechanism
|
||||
|
|
26
src/Val.cc
26
src/Val.cc
|
@ -1755,7 +1755,7 @@ bool TableVal::ExpandAndInit(IntrusivePtr<Val> index, IntrusivePtr<Val> new_val)
|
|||
|
||||
if ( index_type->IsSet() )
|
||||
{
|
||||
index = {AdoptRef{}, index->AsTableVal()->ConvertToList()};
|
||||
index = index->AsTableVal()->ToListVal();
|
||||
return ExpandAndInit(std::move(index), std::move(new_val));
|
||||
}
|
||||
|
||||
|
@ -2110,9 +2110,9 @@ IntrusivePtr<Val> TableVal::Delete(const HashKey* k)
|
|||
return va;
|
||||
}
|
||||
|
||||
ListVal* TableVal::ConvertToList(TypeTag t) const
|
||||
IntrusivePtr<ListVal> TableVal::ToListVal(TypeTag t) const
|
||||
{
|
||||
ListVal* l = new ListVal(t);
|
||||
auto l = make_intrusive<ListVal>(t);
|
||||
|
||||
const PDict<TableEntryVal>* tbl = AsTable();
|
||||
IterCookie* c = tbl->InitForIteration();
|
||||
|
@ -2128,7 +2128,7 @@ ListVal* TableVal::ConvertToList(TypeTag t) const
|
|||
{
|
||||
// We're expecting a pure list, flatten the ListVal.
|
||||
if ( index->Length() != 1 )
|
||||
InternalWarning("bad index in TableVal::ConvertToList");
|
||||
InternalWarning("bad index in TableVal::ToListVal");
|
||||
|
||||
l->Append(index->Idx(0));
|
||||
}
|
||||
|
@ -2139,16 +2139,26 @@ ListVal* TableVal::ConvertToList(TypeTag t) const
|
|||
return l;
|
||||
}
|
||||
|
||||
ListVal* TableVal::ConvertToPureList() const
|
||||
ListVal* TableVal::ConvertToList(TypeTag t) const
|
||||
{
|
||||
return ToListVal().release();
|
||||
}
|
||||
|
||||
IntrusivePtr<ListVal> TableVal::ToPureListVal() const
|
||||
{
|
||||
type_list* tl = table_type->Indices()->Types();
|
||||
if ( tl->length() != 1 )
|
||||
{
|
||||
InternalWarning("bad index type in TableVal::ConvertToPureList");
|
||||
InternalWarning("bad index type in TableVal::ToPureListVal");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return ConvertToList((*tl)[0]->Tag());
|
||||
return ToListVal((*tl)[0]->Tag());
|
||||
}
|
||||
|
||||
ListVal* TableVal::ConvertToPureList() const
|
||||
{
|
||||
return ToPureListVal().release();
|
||||
}
|
||||
|
||||
Attr* TableVal::FindAttr(attr_tag t) const
|
||||
|
@ -2246,7 +2256,7 @@ bool TableVal::ExpandCompoundAndInit(ListVal* lv, int k, IntrusivePtr<Val> new_v
|
|||
{
|
||||
Val* ind_k_v = lv->Idx(k).get();
|
||||
auto ind_k = ind_k_v->Type()->IsSet() ?
|
||||
IntrusivePtr<ListVal>{AdoptRef{}, ind_k_v->AsTableVal()->ConvertToList()} :
|
||||
ind_k_v->AsTableVal()->ToListVal() :
|
||||
IntrusivePtr<ListVal>{NewRef{}, ind_k_v->AsListVal()};
|
||||
|
||||
for ( int i = 0; i < ind_k->Length(); ++i )
|
||||
|
|
|
@ -808,7 +808,15 @@ public:
|
|||
IntrusivePtr<Val> Delete(const HashKey* k);
|
||||
|
||||
// Returns a ListVal representation of the table (which must be a set).
|
||||
IntrusivePtr<ListVal> ToListVal(TypeTag t = TYPE_ANY) const;
|
||||
|
||||
// Returns a ListVal representation of the table (which must be a set
|
||||
// with non-composite index type).
|
||||
IntrusivePtr<ListVal> ToPureListVal() const;
|
||||
|
||||
[[deprecated("Remove in v4.1. Use ToListVal() instead.")]]
|
||||
ListVal* ConvertToList(TypeTag t=TYPE_ANY) const;
|
||||
[[deprecated("Remove in v4.1. Use ToPureListVal() instead.")]]
|
||||
ListVal* ConvertToPureList() const; // must be single index type
|
||||
|
||||
void SetAttrs(IntrusivePtr<Attributes> attrs);
|
||||
|
|
|
@ -749,8 +749,8 @@ ListVal* internal_list_val(const char* name)
|
|||
else if ( v->Type()->IsSet() )
|
||||
{
|
||||
TableVal* tv = v->AsTableVal();
|
||||
ListVal* lv = tv->ConvertToPureList();
|
||||
return lv;
|
||||
auto lv = tv->ToPureListVal();
|
||||
return lv.release();
|
||||
}
|
||||
|
||||
else
|
||||
|
|
|
@ -96,12 +96,10 @@ void Manager::InitPostScript()
|
|||
reporter->FatalError("Tunnel::vxlan_ports not defined");
|
||||
|
||||
auto table_val = id->ID_Val()->AsTableVal();
|
||||
auto port_list = table_val->ConvertToPureList();
|
||||
auto port_list = table_val->ToPureListVal();
|
||||
|
||||
for ( auto i = 0; i < port_list->Length(); ++i )
|
||||
vxlan_ports.emplace_back(port_list->Idx(i)->AsPortVal()->Port());
|
||||
|
||||
Unref(port_list);
|
||||
}
|
||||
|
||||
void Manager::DumpDebug()
|
||||
|
|
|
@ -244,7 +244,7 @@ X509_STORE* file_analysis::X509::GetRootStore(TableVal* root_certs)
|
|||
return x509_stores[root_certs];
|
||||
|
||||
X509_STORE* ctx = X509_STORE_new();
|
||||
ListVal* idxs = root_certs->ConvertToPureList();
|
||||
auto idxs = root_certs->ToPureListVal();
|
||||
|
||||
// Build the validation store
|
||||
for ( int i = 0; i < idxs->Length(); ++i )
|
||||
|
@ -264,8 +264,6 @@ X509_STORE* file_analysis::X509::GetRootStore(TableVal* root_certs)
|
|||
X509_free(x);
|
||||
}
|
||||
|
||||
delete idxs;
|
||||
|
||||
// Save the newly constructed certificate store into the cacheing map.
|
||||
x509_stores[root_certs] = ctx;
|
||||
|
||||
|
|
|
@ -1012,11 +1012,11 @@ threading::Value* Manager::ValToLogVal(Val* val, BroType* ty)
|
|||
|
||||
case TYPE_TABLE:
|
||||
{
|
||||
ListVal* set = val->AsTableVal()->ConvertToPureList();
|
||||
auto set = val->AsTableVal()->ToPureListVal();
|
||||
if ( ! set )
|
||||
// ConvertToPureList has reported an internal warning
|
||||
// ToPureListVal has reported an internal warning
|
||||
// already. Just keep going by making something up.
|
||||
set = new ListVal(TYPE_INT);
|
||||
set = make_intrusive<ListVal>(TYPE_INT);
|
||||
|
||||
lval->val.set_val.size = set->Length();
|
||||
lval->val.set_val.vals = new threading::Value* [lval->val.set_val.size];
|
||||
|
@ -1024,7 +1024,6 @@ threading::Value* Manager::ValToLogVal(Val* val, BroType* ty)
|
|||
for ( int i = 0; i < lval->val.set_val.size; i++ )
|
||||
lval->val.set_val.vals[i] = ValToLogVal(set->Idx(i).get());
|
||||
|
||||
Unref(set);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -401,7 +401,7 @@ function terminate%(%): bool
|
|||
// is false).
|
||||
static bool prepare_environment(TableVal* tbl, bool set)
|
||||
{
|
||||
IntrusivePtr<ListVal> idxs{AdoptRef{}, tbl->ConvertToPureList()};
|
||||
auto idxs = tbl->ToPureListVal();
|
||||
|
||||
for ( int i = 0; i < idxs->Length(); ++i )
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue