backend/x64/a32_interface: Mark Context move constructor and move assignment as noexcept

Provides a more "correct" move constructor/assignment operator, since
these relevant functions shouldn't throw exceptions.

Has the benefit of playing nicely with std::move_if_noexcept and other
noexcept library facilities.
This commit is contained in:
Lioncash 2019-02-27 10:47:42 -05:00 committed by MerryMage
parent 20fabc5083
commit 2e180a7f14
2 changed files with 4 additions and 4 deletions

View file

@ -18,9 +18,9 @@ public:
Context();
~Context();
Context(const Context&);
Context(Context&&);
Context(Context&&) noexcept;
Context& operator=(const Context&);
Context& operator=(Context&&);
Context& operator=(Context&&) noexcept;
/// View and modify registers.
std::array<std::uint32_t, 16>& Regs();

View file

@ -222,12 +222,12 @@ struct Context::Impl {
Context::Context() : impl(std::make_unique<Context::Impl>()) { impl->jit_state.ResetRSB(); }
Context::~Context() = default;
Context::Context(const Context& ctx) : impl(std::make_unique<Context::Impl>(*ctx.impl)) {}
Context::Context(Context&& ctx) : impl(std::move(ctx.impl)) {}
Context::Context(Context&& ctx) noexcept : impl(std::move(ctx.impl)) {}
Context& Context::operator=(const Context& ctx) {
*impl = *ctx.impl;
return *this;
}
Context& Context::operator=(Context&& ctx) {
Context& Context::operator=(Context&& ctx) noexcept {
impl = std::move(ctx.impl);
return *this;
}