From 4efbd40ea41ad50de460c2520377a1e907a865c1 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 1 May 2018 09:10:49 -0400 Subject: [PATCH] backend_x64/callback: Default virtual destructor in the cpp file Prevents the vtable being generated in each translation unit that includes the header (and silences -Wweak-vtables warnings) --- src/backend_x64/callback.cpp | 2 ++ src/backend_x64/callback.h | 6 +----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/backend_x64/callback.cpp b/src/backend_x64/callback.cpp index 4b2aee30..c868bfb1 100644 --- a/src/backend_x64/callback.cpp +++ b/src/backend_x64/callback.cpp @@ -9,6 +9,8 @@ namespace Dynarmic::BackendX64 { +Callback::~Callback() = default; + void SimpleCallback::EmitCall(BlockOfCode& code, std::function l) const { l({code.ABI_PARAM1, code.ABI_PARAM2, code.ABI_PARAM3, code.ABI_PARAM4}); code.CallFunction(fn); diff --git a/src/backend_x64/callback.h b/src/backend_x64/callback.h index 2d474649..05beb66a 100644 --- a/src/backend_x64/callback.h +++ b/src/backend_x64/callback.h @@ -21,7 +21,7 @@ class BlockOfCode; class Callback { public: - virtual ~Callback() = default; + virtual ~Callback(); virtual void EmitCall(BlockOfCode& code, std::function fn = [](RegList){}) const = 0; virtual void EmitCallWithReturnPointer(BlockOfCode& code, std::function fn) const = 0; @@ -32,8 +32,6 @@ public: template SimpleCallback(Function fn) : fn(reinterpret_cast(fn)) {} - ~SimpleCallback() override = default; - void EmitCall(BlockOfCode& code, std::function fn = [](RegList){}) const override; void EmitCallWithReturnPointer(BlockOfCode& code, std::function fn) const override; @@ -46,8 +44,6 @@ public: template ArgCallback(Function fn, u64 arg) : fn(reinterpret_cast(fn)), arg(arg) {} - ~ArgCallback() override = default; - void EmitCall(BlockOfCode& code, std::function fn = [](RegList){}) const override; void EmitCallWithReturnPointer(BlockOfCode& code, std::function fn) const override;