mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Avoid creating a few temporary values to avoid copy operations
This commit is contained in:
parent
3295c8f1c1
commit
1e33467844
3 changed files with 3 additions and 7 deletions
|
@ -844,8 +844,7 @@ void ValTraceMgr::AssessChange(const ValTrace* vt, const ValTrace* prev_vt) {
|
||||||
|
|
||||||
void ValTraceMgr::TrackVar(const Val* v) {
|
void ValTraceMgr::TrackVar(const Val* v) {
|
||||||
std::string base_name = IsUnsupported(v) ? "UNSUPPORTED" : "val";
|
std::string base_name = IsUnsupported(v) ? "UNSUPPORTED" : "val";
|
||||||
auto val_name = "__" + base_name + std::to_string(num_vars++);
|
val_names[v] = "__" + base_name + std::to_string(num_vars++);
|
||||||
val_names[v] = val_name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ValTraceMgr::GenValName(const ValPtr& v) {
|
std::string ValTraceMgr::GenValName(const ValPtr& v) {
|
||||||
|
|
|
@ -1052,8 +1052,7 @@ void RecordType::AddField(unsigned int field, const TypeDecl* td) {
|
||||||
|
|
||||||
if ( def_expr && ! IsErrorType(type->Tag()) ) {
|
if ( def_expr && ! IsErrorType(type->Tag()) ) {
|
||||||
if ( def_expr->Tag() == detail::EXPR_CONST ) {
|
if ( def_expr->Tag() == detail::EXPR_CONST ) {
|
||||||
auto v = def_expr->Eval(nullptr);
|
auto zv = ZVal(def_expr->Eval(nullptr), type);
|
||||||
auto zv = ZVal(v, type);
|
|
||||||
|
|
||||||
if ( ZVal::IsManagedType(type) )
|
if ( ZVal::IsManagedType(type) )
|
||||||
init = std::make_unique<detail::DirectManagedFieldInit>(zv);
|
init = std::make_unique<detail::DirectManagedFieldInit>(zv);
|
||||||
|
|
|
@ -1240,9 +1240,7 @@ Supervisor::NodeConfig Supervisor::NodeConfig::FromRecord(const RecordVal* node)
|
||||||
|
|
||||||
auto key = env_table_val->RecreateIndex(*k);
|
auto key = env_table_val->RecreateIndex(*k);
|
||||||
auto name = key->Idx(0)->AsStringVal()->ToStdString();
|
auto name = key->Idx(0)->AsStringVal()->ToStdString();
|
||||||
auto val = v->GetVal()->AsStringVal()->ToStdString();
|
rval.env[name] = v->GetVal()->AsStringVal()->ToStdString();
|
||||||
|
|
||||||
rval.env[name] = val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto cluster_table_val = node->GetField("cluster")->AsTableVal();
|
auto cluster_table_val = node->GetField("cluster")->AsTableVal();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue