From 96832a2c82807876925126bc7a0e3b546a952c74 Mon Sep 17 00:00:00 2001 From: Mat M Date: Tue, 28 Apr 2020 15:39:02 -0400 Subject: [PATCH] core/memory: Make use of std::move in Entry::operator= (#5233) * core/memory: Amend unusual return value of operator= operator= usually returns a reference to this. Given there's no comment explaining why void was used, this can be assumed to be an oversight. * core/memory: Make use of std::move in Entry::operator= Same behavior, minus the need for an atomic reference count increment and decrement (since MemoryRef contains a std::shared_ptr). --- src/core/memory.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/memory.h b/src/core/memory.h index 5e259a8ad..e8e714952 100644 --- a/src/core/memory.h +++ b/src/core/memory.h @@ -85,9 +85,10 @@ struct PageTable { struct Entry { Entry(Pointers& pointers_, VAddr idx_) : pointers(pointers_), idx(idx_) {} - void operator=(MemoryRef value) { - pointers.refs[idx] = value; + Entry& operator=(MemoryRef value) { pointers.raw[idx] = value.GetPtr(); + pointers.refs[idx] = std::move(value); + return *this; } operator u8*() {