From 02ee984b9d0de9840af7aa60164041cb066674bd Mon Sep 17 00:00:00 2001 From: tpearson Date: Fri, 8 Jul 2011 19:50:21 +0000 Subject: [PATCH] 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 --- kdesktop/KBackgroundIface.h | 4 +++- kdesktop/bgmanager.cc | 2 +- kdesktop/bgmanager.h | 2 +- kdesktop/krootwm.cc | 2 +- 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 #include -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");