From 61b44a9c6325de1ec33468c27adb712fa4aff355 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 20 May 2020 22:23:13 -0700 Subject: [PATCH] Minor TableVal::Assign() ref-counting optimization --- src/Val.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Val.cc b/src/Val.cc index 370fa1fbac..8290de068b 100644 --- a/src/Val.cc +++ b/src/Val.cc @@ -1532,7 +1532,7 @@ bool TableVal::Assign(IntrusivePtr index, std::unique_ptr k, if ( (is_set && new_val) || (! is_set && ! new_val) ) InternalWarning("bad set/table in TableVal::Assign"); - TableEntryVal* new_entry_val = new TableEntryVal(new_val); + TableEntryVal* new_entry_val = new TableEntryVal(std::move(new_val)); HashKey k_copy(k->Key(), k->Size(), k->Hash()); TableEntryVal* old_entry_val = AsNonConstTable()->Insert(k.get(), new_entry_val); @@ -1561,7 +1561,7 @@ bool TableVal::Assign(IntrusivePtr index, std::unique_ptr k, if ( change_func ) { auto change_index = index ? std::move(index) : RecreateIndex(k_copy); - auto v = old_entry_val ? old_entry_val->GetVal() : new_val; + auto v = old_entry_val ? old_entry_val->GetVal() : new_entry_val->GetVal(); CallChangeFunc(change_index.get(), v.get(), old_entry_val ? ELEMENT_CHANGED : ELEMENT_NEW); }