summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-07-08 19:50:21 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-07-08 19:50:21 +0000
commit02ee984b9d0de9840af7aa60164041cb066674bd (patch)
tree919bab01656b62cd57d7b6c08693f3698b0e48ec
parent20957d880f050d82c71939cb750c54a6dcfd70f4 (diff)
downloadtdebase-02ee984b9d0de9840af7aa60164041cb066674bd.tar.gz
tdebase-02ee984b9d0de9840af7aa60164041cb066674bd.zip
Fix Bug #456
On newer gcc/libstdc/glibc systems virtual base objects are not actually allocated, causing a crash when assigning to data members of the virtual base object. git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1240474 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
-rw-r--r--kdesktop/KBackgroundIface.h4
-rw-r--r--kdesktop/bgmanager.cc2
-rw-r--r--kdesktop/bgmanager.h2
-rw-r--r--kdesktop/krootwm.cc2
4 files changed, 6 insertions, 4 deletions
diff --git a/kdesktop/KBackgroundIface.h b/kdesktop/KBackgroundIface.h
index 47818021a..0753b54aa 100644
--- a/kdesktop/KBackgroundIface.h
+++ b/kdesktop/KBackgroundIface.h
@@ -8,11 +8,13 @@
#include <dcopobject.h>
#include <tqcolor.h>
-class KBackgroundIface : virtual public DCOPObject
+class KBackgroundIface : public DCOPObject
{
K_DCOP
public:
+ KBackgroundIface() : DCOPObject("KBackgroundIface") {}
+
k_dcop:
/** Reread the configuration */
virtual void configure() = 0;
diff --git a/kdesktop/bgmanager.cc b/kdesktop/bgmanager.cc
index efabdbf2e..a3f58c2eb 100644
--- a/kdesktop/bgmanager.cc
+++ b/kdesktop/bgmanager.cc
@@ -60,7 +60,7 @@ extern KDesktopApp *myApp;
/**** KBackgroundManager ****/
KBackgroundManager::KBackgroundManager(TQWidget *desktop, KWinModule* kwinModule)
- : DCOPObject("KBackgroundIface")
+ : KBackgroundIface()
{
if( !properties_inited )
{
diff --git a/kdesktop/bgmanager.h b/kdesktop/bgmanager.h
index 485d6520b..4e15b8df5 100644
--- a/kdesktop/bgmanager.h
+++ b/kdesktop/bgmanager.h
@@ -55,7 +55,7 @@ struct KBackgroundCacheEntry
class KBackgroundManager
: public TQObject,
- virtual public KBackgroundIface
+ public KBackgroundIface
{
Q_OBJECT
TQ_OBJECT
diff --git a/kdesktop/krootwm.cc b/kdesktop/krootwm.cc
index 2ea6fa87c..3805e5c81 100644
--- a/kdesktop/krootwm.cc
+++ b/kdesktop/krootwm.cc
@@ -69,7 +69,7 @@ KRootWm * KRootWm::s_rootWm = 0;
extern TQCString kdesktop_name, kicker_name, kwin_name;
-KRootWm::KRootWm(KDesktop* _desktop) : TQObject(_desktop)
+KRootWm::KRootWm(KDesktop* _desktop) : TQObject(_desktop), startup(FALSE)
{
s_rootWm = this;
m_actionCollection = new KActionCollection(_desktop, this, "KRootWm::m_actionCollection");