Deprecate TableEntryVal::Value(), replace with GetVal()

This commit is contained in:
Jon Siwek 2020-05-18 17:09:27 -07:00
parent 5742810293
commit fcaade6e31
7 changed files with 42 additions and 29 deletions

View file

@ -1197,7 +1197,7 @@ IntrusivePtr<Val> ForStmt::DoExec(Frame* f, Val* v, stmt_flow_type& flow) const
delete k; delete k;
if ( value_var ) if ( value_var )
f->SetElement(value_var.get(), current_tev->Value()->Ref()); f->SetElement(value_var.get(), current_tev->GetVal()->Ref());
for ( int i = 0; i < ind_lv->Length(); i++ ) for ( int i = 0; i < ind_lv->Length(); i++ )
f->SetElement((*loop_vars)[i], ind_lv->Idx(i)->Ref()); f->SetElement((*loop_vars)[i], ind_lv->Idx(i)->Ref());

View file

@ -559,7 +559,7 @@ static void BuildJSON(threading::formatter::JSON::NullDoubleWriter& writer, Val*
// Strip quotes. // Strip quotes.
key_str = key_str.substr(1, key_str.length() - 2); key_str = key_str.substr(1, key_str.length() - 2);
BuildJSON(writer, entry->Value(), only_loggable, re, key_str); BuildJSON(writer, entry->GetVal().get(), only_loggable, re, key_str);
} }
} }
@ -1451,8 +1451,8 @@ int TableVal::RecursiveSize() const
TableEntryVal* tv; TableEntryVal* tv;
while ( (tv = v->NextEntry(c)) ) while ( (tv = v->NextEntry(c)) )
{ {
if ( tv->Value() ) if ( tv->GetVal() )
n += tv->Value()->AsTableVal()->RecursiveSize(); n += tv->GetVal()->AsTableVal()->RecursiveSize();
} }
return n; return n;
@ -1561,8 +1561,8 @@ bool TableVal::Assign(Val* index, HashKey* k, IntrusivePtr<Val> new_val)
{ {
auto change_index = index ? IntrusivePtr<Val>{NewRef{}, index} auto change_index = index ? IntrusivePtr<Val>{NewRef{}, index}
: RecoverIndex(&k_copy); : RecoverIndex(&k_copy);
Val* v = old_entry_val ? old_entry_val->Value() : new_val.get(); auto v = old_entry_val ? old_entry_val->GetVal() : new_val;
CallChangeFunc(change_index.get(), v, old_entry_val ? ELEMENT_CHANGED : ELEMENT_NEW); CallChangeFunc(change_index.get(), v.get(), old_entry_val ? ELEMENT_CHANGED : ELEMENT_NEW);
} }
delete old_entry_val; delete old_entry_val;
@ -1618,12 +1618,12 @@ bool TableVal::AddTo(Val* val, bool is_first_init, bool propagate_ops) const
if ( type->IsSet() ) if ( type->IsSet() )
{ {
if ( ! t->Assign(v->Value(), k, nullptr) ) if ( ! t->Assign(v->GetVal().get(), k, nullptr) )
return false; return false;
} }
else else
{ {
if ( ! t->Assign(nullptr, k, {NewRef{}, v->Value()}) ) if ( ! t->Assign(nullptr, k, v->GetVal()) )
return false; return false;
} }
} }
@ -1895,7 +1895,10 @@ IntrusivePtr<Val> TableVal::Lookup(Val* index, bool use_default_val)
if ( attrs && attrs->FindAttr(ATTR_EXPIRE_READ) ) if ( attrs && attrs->FindAttr(ATTR_EXPIRE_READ) )
v->SetExpireAccess(network_time); v->SetExpireAccess(network_time);
return {NewRef{}, v->Value() ? v->Value() : this}; if ( v->GetVal() )
return v->GetVal();
return {NewRef{}, this};
} }
if ( ! use_default_val ) if ( ! use_default_val )
@ -1919,7 +1922,10 @@ IntrusivePtr<Val> TableVal::Lookup(Val* index, bool use_default_val)
if ( attrs && attrs->FindAttr(ATTR_EXPIRE_READ) ) if ( attrs && attrs->FindAttr(ATTR_EXPIRE_READ) )
v->SetExpireAccess(network_time); v->SetExpireAccess(network_time);
return {NewRef{}, v->Value() ? v->Value() : this}; if ( v->GetVal() )
return v->GetVal();
return {NewRef{}, this};
} }
} }
} }
@ -1957,8 +1963,8 @@ IntrusivePtr<TableVal> TableVal::LookupSubnetValues(const SubNetVal* search)
SubNetVal* s = new SubNetVal(get<0>(element)); SubNetVal* s = new SubNetVal(get<0>(element));
TableEntryVal* entry = reinterpret_cast<TableEntryVal*>(get<1>(element)); TableEntryVal* entry = reinterpret_cast<TableEntryVal*>(get<1>(element));
if ( entry && entry->Value() ) if ( entry && entry->GetVal() )
nt->Assign(s, {NewRef{}, entry->Value()}); nt->Assign(s, entry->GetVal());
else else
nt->Assign(s, nullptr); // set nt->Assign(s, nullptr); // set
@ -2069,7 +2075,10 @@ IntrusivePtr<Val> TableVal::Delete(const Val* index)
{ {
HashKey* k = ComputeHash(index); HashKey* k = ComputeHash(index);
TableEntryVal* v = k ? AsNonConstTable()->RemoveEntry(k) : nullptr; TableEntryVal* v = k ? AsNonConstTable()->RemoveEntry(k) : nullptr;
IntrusivePtr<Val> va{NewRef{}, v ? (v->Value() ? v->Value() : this) : nullptr}; IntrusivePtr<Val> va;
if ( v )
va = v->GetVal() ? v->GetVal() : IntrusivePtr{NewRef{}, this};
if ( subnets && ! subnets->Remove(index) ) if ( subnets && ! subnets->Remove(index) )
reporter->InternalWarning("index not in prefix table"); reporter->InternalWarning("index not in prefix table");
@ -2088,7 +2097,10 @@ IntrusivePtr<Val> TableVal::Delete(const Val* index)
IntrusivePtr<Val> TableVal::Delete(const HashKey* k) IntrusivePtr<Val> TableVal::Delete(const HashKey* k)
{ {
TableEntryVal* v = AsNonConstTable()->RemoveEntry(k); TableEntryVal* v = AsNonConstTable()->RemoveEntry(k);
IntrusivePtr<Val> va{NewRef{}, v ? (v->Value() ? v->Value() : this) : nullptr}; IntrusivePtr<Val> va;
if ( v )
va = v->GetVal() ? v->GetVal() : IntrusivePtr{NewRef{}, this};
if ( subnets ) if ( subnets )
{ {
@ -2232,8 +2244,8 @@ void TableVal::Describe(ODesc* d) const
{ {
if ( d->IsReadable() ) if ( d->IsReadable() )
d->AddSP("] ="); d->AddSP("] =");
if ( v->Value() ) if ( v->GetVal() )
v->Value()->Describe(d); v->GetVal()->Describe(d);
} }
if ( d->IsReadable() && ! d->IsShort() && d->IncludeStats() ) if ( d->IsReadable() && ! d->IsShort() && d->IncludeStats() )
@ -2408,7 +2420,7 @@ void TableVal::DoExpire(double t)
{ {
if ( ! idx ) if ( ! idx )
idx = RecoverIndex(k); idx = RecoverIndex(k);
CallChangeFunc(idx.get(), v->Value(), ELEMENT_EXPIRED); CallChangeFunc(idx.get(), v->GetVal().get(), ELEMENT_EXPIRED);
} }
delete v; delete v;
@ -2576,8 +2588,8 @@ unsigned int TableVal::MemoryAllocation() const
TableEntryVal* tv; TableEntryVal* tv;
while ( (tv = v->NextEntry(c)) ) while ( (tv = v->NextEntry(c)) )
{ {
if ( tv->Value() ) if ( tv->GetVal() )
size += tv->Value()->MemoryAllocation(); size += tv->GetVal()->MemoryAllocation();
size += padded_sizeof(TableEntryVal); size += padded_sizeof(TableEntryVal);
} }
@ -2628,9 +2640,7 @@ TableVal::ParseTimeTableState TableVal::DumpTableState()
while ( (val = tbl->NextEntry(key, cookie)) ) while ( (val = tbl->NextEntry(key, cookie)) )
{ {
rval.emplace_back(RecoverIndex(key), rval.emplace_back(RecoverIndex(key), val->GetVal());
IntrusivePtr<Val>{NewRef{}, val->Value()});
delete key; delete key;
} }

View file

@ -689,9 +689,8 @@ extern double bro_start_network_time;
class TableEntryVal { class TableEntryVal {
public: public:
template<typename V> explicit TableEntryVal(IntrusivePtr<Val> v)
explicit TableEntryVal(V&& v) : val(std::move(v))
: val(std::forward<V>(v))
{ {
last_access_time = network_time; last_access_time = network_time;
expire_access_time = expire_access_time =
@ -700,8 +699,12 @@ public:
TableEntryVal* Clone(Val::CloneState* state); TableEntryVal* Clone(Val::CloneState* state);
[[deprecated("Remove in v4.1. Use GetVal().")]]
Val* Value() { return val.get(); } Val* Value() { return val.get(); }
const IntrusivePtr<Val>& GetVal() const
{ return val; }
// Returns/sets time of last expiration relevant access to this value. // Returns/sets time of last expiration relevant access to this value.
double ExpireAccessTime() const double ExpireAccessTime() const
{ return bro_start_network_time + expire_access_time; } { return bro_start_network_time + expire_access_time; }

View file

@ -928,7 +928,7 @@ broker::expected<broker::data> bro_broker::val_to_data(const Val* v)
caf::get<broker::set>(rval).emplace(move(key)); caf::get<broker::set>(rval).emplace(move(key));
else else
{ {
auto val = val_to_data(entry->Value()); auto val = val_to_data(entry->GetVal().get());
if ( ! val ) if ( ! val )
return broker::ec::invalid_data; return broker::ec::invalid_data;

View file

@ -285,7 +285,7 @@ bool Manager::CreateStream(Stream* info, RecordVal* description)
{ {
auto index = info->config->RecoverIndex(k); auto index = info->config->RecoverIndex(k);
string key = index->Idx(0)->AsString()->CheckString(); string key = index->Idx(0)->AsString()->CheckString();
string value = v->Value()->AsString()->CheckString(); string value = v->GetVal()->AsString()->CheckString();
rinfo.config.insert(std::make_pair(copy_string(key.c_str()), copy_string(value.c_str()))); rinfo.config.insert(std::make_pair(copy_string(key.c_str()), copy_string(value.c_str())));
delete k; delete k;
} }

View file

@ -871,7 +871,7 @@ bool Manager::Write(EnumVal* id, RecordVal* columns_arg)
{ {
auto index = filter->config->RecoverIndex(k); auto index = filter->config->RecoverIndex(k);
string key = index->Idx(0)->AsString()->CheckString(); string key = index->Idx(0)->AsString()->CheckString();
string value = v->Value()->AsString()->CheckString(); string value = v->GetVal()->AsString()->CheckString();
info->config.insert(std::make_pair(copy_string(key.c_str()), copy_string(value.c_str()))); info->config.insert(std::make_pair(copy_string(key.c_str()), copy_string(value.c_str())));
delete k; delete k;
} }

View file

@ -1027,7 +1027,7 @@ Supervisor::NodeConfig Supervisor::NodeConfig::FromRecord(const RecordVal* node)
auto key = cluster_table_val->RecoverIndex(k); auto key = cluster_table_val->RecoverIndex(k);
delete k; delete k;
auto name = key->Idx(0)->AsStringVal()->ToStdString(); auto name = key->Idx(0)->AsStringVal()->ToStdString();
auto rv = v->Value()->AsRecordVal(); auto rv = v->GetVal()->AsRecordVal();
Supervisor::ClusterEndpoint ep; Supervisor::ClusterEndpoint ep;
ep.role = static_cast<BifEnum::Supervisor::ClusterRole>(rv->Lookup("role")->AsEnum()); ep.role = static_cast<BifEnum::Supervisor::ClusterRole>(rv->Lookup("role")->AsEnum());