Val: add TableVal::Assign() overload with IntrusivePtr

Prepare the transition to IntrusivePtr for various callers.
This commit is contained in:
Max Kellermann 2020-03-02 19:03:41 +01:00
parent 78712d009f
commit 0a6ddfb6b5
54 changed files with 379 additions and 365 deletions

View file

@ -1109,19 +1109,19 @@ IntrusivePtr<RecordVal> Supervisor::NodeConfig::ToRecord() const
{
auto rt = BifType::Record::Supervisor::NodeConfig;
auto rval = make_intrusive<RecordVal>(rt);
rval->Assign(rt->FieldOffset("name"), new StringVal(name));
rval->Assign(rt->FieldOffset("name"), make_intrusive<StringVal>(name));
if ( interface )
rval->Assign(rt->FieldOffset("interface"), new StringVal(*interface));
rval->Assign(rt->FieldOffset("interface"), make_intrusive<StringVal>(*interface));
if ( directory )
rval->Assign(rt->FieldOffset("directory"), new StringVal(*directory));
rval->Assign(rt->FieldOffset("directory"), make_intrusive<StringVal>(*directory));
if ( stdout_file )
rval->Assign(rt->FieldOffset("stdout_file"), new StringVal(*stdout_file));
rval->Assign(rt->FieldOffset("stdout_file"), make_intrusive<StringVal>(*stdout_file));
if ( stderr_file )
rval->Assign(rt->FieldOffset("stderr_file"), new StringVal(*stderr_file));
rval->Assign(rt->FieldOffset("stderr_file"), make_intrusive<StringVal>(*stderr_file));
if ( cpu_affinity )
rval->Assign(rt->FieldOffset("cpu_affinity"), val_mgr->GetInt(*cpu_affinity));
@ -1131,7 +1131,7 @@ IntrusivePtr<RecordVal> Supervisor::NodeConfig::ToRecord() const
rval->Assign(rt->FieldOffset("scripts"), scripts_val);
for ( const auto& s : scripts )
scripts_val->Assign(scripts_val->Size(), new StringVal(s));
scripts_val->Assign(scripts_val->Size(), make_intrusive<StringVal>(s));
auto tt = BifType::Record::Supervisor::NodeConfig->FieldType("cluster");
auto cluster_val = new TableVal(tt->AsTableType());
@ -1146,13 +1146,13 @@ IntrusivePtr<RecordVal> Supervisor::NodeConfig::ToRecord() const
auto val = make_intrusive<RecordVal>(ept);
val->Assign(ept->FieldOffset("role"), BifType::Enum::Supervisor::ClusterRole->GetVal(ep.role));
val->Assign(ept->FieldOffset("host"), new AddrVal(ep.host));
val->Assign(ept->FieldOffset("host"), make_intrusive<AddrVal>(ep.host));
val->Assign(ept->FieldOffset("p"), val_mgr->GetPort(ep.port, TRANSPORT_TCP));
if ( ep.interface )
val->Assign(ept->FieldOffset("interface"), new StringVal(*ep.interface));
val->Assign(ept->FieldOffset("interface"), make_intrusive<StringVal>(*ep.interface));
cluster_val->Assign(key.get(), val.release());
cluster_val->Assign(key.get(), std::move(val));
}
return rval;
@ -1163,7 +1163,7 @@ IntrusivePtr<RecordVal> Supervisor::Node::ToRecord() const
auto rt = BifType::Record::Supervisor::NodeStatus;
auto rval = make_intrusive<RecordVal>(rt);
rval->Assign(rt->FieldOffset("node"), config.ToRecord().release());
rval->Assign(rt->FieldOffset("node"), config.ToRecord());
if ( pid )
rval->Assign(rt->FieldOffset("pid"), val_mgr->GetInt(pid));
@ -1219,18 +1219,18 @@ bool Supervisor::SupervisedNode::InitCluster() const
auto node_type = supervisor_role_to_cluster_node_type(ep.role);
val->Assign(cluster_node_type->FieldOffset("node_type"), node_type);
val->Assign(cluster_node_type->FieldOffset("ip"), new AddrVal(ep.host));
val->Assign(cluster_node_type->FieldOffset("ip"), make_intrusive<AddrVal>(ep.host));
val->Assign(cluster_node_type->FieldOffset("p"), val_mgr->GetPort(ep.port, TRANSPORT_TCP));
if ( ep.interface )
val->Assign(cluster_node_type->FieldOffset("interface"),
new StringVal(*ep.interface));
make_intrusive<StringVal>(*ep.interface));
if ( manager_name && ep.role != BifEnum::Supervisor::MANAGER )
val->Assign(cluster_node_type->FieldOffset("manager"),
new StringVal(*manager_name));
make_intrusive<StringVal>(*manager_name));
cluster_nodes->Assign(key.get(), val.release());
cluster_nodes->Assign(key.get(), std::move(val));
}
cluster_manager_is_logger_id->SetVal({AdoptRef{}, val_mgr->GetBool(! has_logger)});
@ -1329,7 +1329,7 @@ RecordVal* Supervisor::Status(std::string_view node_name)
const auto& node = n.second;
auto key = make_intrusive<StringVal>(name);
auto val = node.ToRecord();
node_table_val->Assign(key.get(), val.release());
node_table_val->Assign(key.get(), std::move(val));
}
}
else
@ -1343,7 +1343,7 @@ RecordVal* Supervisor::Status(std::string_view node_name)
const auto& node = it->second;
auto key = make_intrusive<StringVal>(name);
auto val = node.ToRecord();
node_table_val->Assign(key.get(), val.release());
node_table_val->Assign(key.get(), std::move(val));
}
return rval;