Avoid creating a few temporary values to avoid copy operations

This commit is contained in:
Tim Wojtulewicz 2023-11-27 11:23:07 -07:00
parent 3295c8f1c1
commit 1e33467844
3 changed files with 3 additions and 7 deletions

View file

@ -844,8 +844,7 @@ void ValTraceMgr::AssessChange(const ValTrace* vt, const ValTrace* prev_vt) {
void ValTraceMgr::TrackVar(const Val* v) {
std::string base_name = IsUnsupported(v) ? "UNSUPPORTED" : "val";
auto val_name = "__" + base_name + std::to_string(num_vars++);
val_names[v] = val_name;
val_names[v] = "__" + base_name + std::to_string(num_vars++);
}
std::string ValTraceMgr::GenValName(const ValPtr& v) {

View file

@ -1052,8 +1052,7 @@ void RecordType::AddField(unsigned int field, const TypeDecl* td) {
if ( def_expr && ! IsErrorType(type->Tag()) ) {
if ( def_expr->Tag() == detail::EXPR_CONST ) {
auto v = def_expr->Eval(nullptr);
auto zv = ZVal(v, type);
auto zv = ZVal(def_expr->Eval(nullptr), type);
if ( ZVal::IsManagedType(type) )
init = std::make_unique<detail::DirectManagedFieldInit>(zv);

View file

@ -1240,9 +1240,7 @@ Supervisor::NodeConfig Supervisor::NodeConfig::FromRecord(const RecordVal* node)
auto key = env_table_val->RecreateIndex(*k);
auto name = key->Idx(0)->AsStringVal()->ToStdString();
auto val = v->GetVal()->AsStringVal()->ToStdString();
rval.env[name] = val;
rval.env[name] = v->GetVal()->AsStringVal()->ToStdString();
}
auto cluster_table_val = node->GetField("cluster")->AsTableVal();