From 7f51a01631c5ae8c37a232c1210276002cf5f99a Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sat, 4 Jul 2015 21:09:44 +0200 Subject: [PATCH] clean-up some library and linkage problems the object VTable is typically emitted when the compiler encounters the first non-static non-inline function of the class or a derived class. Sometimes this happens within the wrong library and so the compiler needs a nudge to emit those infrastructure functions. But in most cases this works out of the box and need no further magic incanctations, which might have a downside. Especially because also a non-inline dtor does incur a call overhead, whereas an inline dtor can be trivially elided. --- src/lib/time/timecode.cpp | 3 --- src/lib/time/timecode.hpp | 2 +- src/proc/engine/engine-service.cpp | 2 -- src/proc/engine/engine-service.hpp | 2 +- tests/{library => core/proc/asset}/entry-id-test.cpp | 0 5 files changed, 2 insertions(+), 7 deletions(-) rename tests/{library => core/proc/asset}/entry-id-test.cpp (100%) diff --git a/src/lib/time/timecode.cpp b/src/lib/time/timecode.cpp index 0a7a629e5..27ffc0eae 100644 --- a/src/lib/time/timecode.cpp +++ b/src/lib/time/timecode.cpp @@ -48,9 +48,6 @@ namespace lib { namespace time { - TCode::~TCode() { } // emit VTable here.... - - namespace format { /* ================= Timecode implementation details ======== */ LUMIERA_ERROR_DEFINE (INVALID_TIMECODE, "timecode format error, illegal value encountered"); diff --git a/src/lib/time/timecode.hpp b/src/lib/time/timecode.hpp index f81df7c7f..8c93aa966 100644 --- a/src/lib/time/timecode.hpp +++ b/src/lib/time/timecode.hpp @@ -52,7 +52,7 @@ namespace time { { public: - virtual ~TCode(); + virtual ~TCode() { } operator string() const { return show(); } string describe() const { return string(tcID()); } diff --git a/src/proc/engine/engine-service.cpp b/src/proc/engine/engine-service.cpp index 45e7a24e6..c936e4904 100644 --- a/src/proc/engine/engine-service.cpp +++ b/src/proc/engine/engine-service.cpp @@ -181,8 +181,6 @@ namespace engine{ /* ===== Quality-of-Service ===== */ - EngineService::Quality::~Quality() { } // emit vtables here... - enum CalcType { PLAYBACK, RENDER, diff --git a/src/proc/engine/engine-service.hpp b/src/proc/engine/engine-service.hpp index bc98a6a28..2d7a40707 100644 --- a/src/proc/engine/engine-service.hpp +++ b/src/proc/engine/engine-service.hpp @@ -121,7 +121,7 @@ namespace engine{ class Quality { public: - virtual ~Quality(); ///< this is an Interface + virtual ~Quality() { }; ///< this is an Interface }; diff --git a/tests/library/entry-id-test.cpp b/tests/core/proc/asset/entry-id-test.cpp similarity index 100% rename from tests/library/entry-id-test.cpp rename to tests/core/proc/asset/entry-id-test.cpp