]> git.tdb.fi Git - libs/gl.git/commitdiff
Force some c'tors and d'tors to be emitted in the library
authorMikko Rasa <tdb@tdb.fi>
Thu, 11 Apr 2013 19:58:52 +0000 (22:58 +0300)
committerMikko Rasa <tdb@tdb.fi>
Thu, 11 Apr 2013 19:58:52 +0000 (22:58 +0300)
Forward declaring class A and having a RefPtr to it in class B causes
trouble if B's constructor or destructor is synthesized at a location
where A's definition is not visible.

source/animation.cpp
source/animation.h
source/font.cpp
source/font.h
source/keyframe.cpp
source/keyframe.h
source/object.cpp

index 8135cb5995a406e5f9b722f5ca242b3c60eecb96..255e63cc8102128299076d345cb99dd8904ca6ed 100644 (file)
@@ -17,6 +17,10 @@ Animation::Animation():
        looping(false)
 { }
 
+// Avoid synthesizing ~RefPtr in files including animation.h
+Animation::~Animation()
+{ }
+
 void Animation::set_armature(const Armature &a)
 {
        armature = &a;
index 6b890ea369811d58ee7ae1aae42046dfef6cf173..58a76583392270e5f1c0dd7a348d0fe10cff23d7 100644 (file)
@@ -100,6 +100,7 @@ private:
 
 public:
        Animation();
+       ~Animation();
 
        void set_armature(const Armature &);
        const Armature *get_armature() const { return armature; }
index 53e3bd6261c0b11bfdbefc0e46a66adde4054d40..abfe631ef82dae0336bfb49f631023197c7d1b26 100644 (file)
@@ -18,6 +18,10 @@ Font::Font():
        descent(0)
 { }
 
+// Avoid synthesizing ~RefPtr in files including font.h
+Font::~Font()
+{ }
+
 void Font::set_texture(const Texture2D &t)
 {
        texture = &t;
index 6f8f35ff1db4be61fc52af060e1daade7ae73496..fe5a9b34d2355b386e2f891be38e2b71df48ff4c 100644 (file)
@@ -58,6 +58,7 @@ private:
 
 public:
        Font();
+       ~Font();
 
        void set_texture(const Texture2D &);
        const Texture2D &get_texture() const;
index e0d35ad80c7546a74f00754657a283a5e4583520..8e0d79044483f0fac6ba52c64476adb344e5b090 100644 (file)
@@ -7,6 +7,13 @@ using namespace std;
 namespace Msp {
 namespace GL {
 
+// Avoid synthesizing RefPtr c'tor and d'tor in files including keyframe.h
+KeyFrame::KeyFrame()
+{ }
+
+KeyFrame::~KeyFrame()
+{ }
+
 void KeyFrame::set_matrix(const Matrix &m)
 {
        matrix = m;
index ccfbda9a4f0cdf3dd2107f7e60ed028dd77f0021..6a8c5a447e60ab8c5f0575f47854e9019e145090 100644 (file)
@@ -37,6 +37,9 @@ private:
        RefPtr<const Pose> pose;
 
 public:
+       KeyFrame();
+       ~KeyFrame();
+
        void set_matrix(const Matrix &);
        void set_pose(const Pose &);
        const Matrix &get_matrix() const { return matrix; }
index ab7afc1480aaf272589df76a6dbe31ac732dd084..769996834bd89692f1be7496e6c2d1a411b0d3b6 100644 (file)
@@ -25,9 +25,9 @@ Object::Object(const Mesh *m, const Technique *t)
        set_technique(t);
 }
 
+// Avoid synthesizing ~RefPtr in files including object.h
 Object::~Object()
-{
-}
+{ }
 
 void Object::set_mesh(unsigned i, const Mesh *m)
 {