6e9f8cb7 | 2014-12-06 15:17:15 | Timothy Pearson |
Fix Kontact crash in Akregator part due to identical destructor signatures being generated for two unrelated classes This relates to Bug 2235 Fix a slew of non-virtual destructor problems |
||
M akregator/src/actionmanagerimpl.cpp M akregator/src/article.cpp M akregator/src/articlefilter.h M akregator/src/articlelistview.cpp M akregator/src/articleviewer.cpp M akregator/src/feed.cpp M akregator/src/feedlist.cpp M akregator/src/feedlistview.cpp M akregator/src/plugin.cpp M akregator/src/plugin.h M akregator/src/simplenodeselector.cpp M akregator/src/storagefactory.h M kontact/interfaces/plugin.h M kontact/interfaces/uniqueapphandler.h M kontact/plugins/akregator/akregator_plugin.cpp M kontact/plugins/akregator/akregator_plugin.h M kontact/plugins/kaddressbook/kaddressbook_plugin.h M kontact/plugins/karm/karm_plugin.h M kontact/plugins/kitchensync/kitchensync_plugin.h M kontact/plugins/kmail/kmail_plugin.h M kontact/plugins/knode/knode_plugin.h M kontact/plugins/knotes/knotes_plugin.h M kontact/plugins/korganizer/korganizerplugin.h M kontact/plugins/kpilot/kpilot_plugin.cpp M kontact/plugins/kpilot/kpilot_plugin.h M kontact/plugins/newsticker/newsticker_plugin.cpp M kontact/plugins/newsticker/newsticker_plugin.h M kontact/plugins/specialdates/specialdates_plugin.h M kontact/plugins/summary/summaryview_plugin.h M kontact/plugins/test/test_plugin.h M kontact/plugins/weather/weather_plugin.cpp M kontact/plugins/weather/weather_plugin.h M korganizer/printing/cellitem.h M ktnef/gui/qwmf.cpp M libkcal/calendarresources.h M libtdepim/alarmclient.cpp M libtdepim/alarmclient.h M wizards/kmailchanges.h |
||
diff --git a/akregator/src/actionmanagerimpl.cpp b/akregator/src/actionmanagerimpl.cpp index c269500..7fa61cd 100644 --- a/akregator/src/actionmanagerimpl.cpp +++ b/akregator/src/actionmanagerimpl.cpp @@ -68,6 +68,7 @@ { public: NodeSelectVisitor(ActionManagerImpl* manager) : m_manager(manager) {} + virtual ~NodeSelectVisitor() {} virtual bool visitFeed(Feed* node) { diff --git a/akregator/src/article.cpp b/akregator/src/article.cpp index 8b62509..0e01d3e 100644 --- a/akregator/src/article.cpp +++ b/akregator/src/article.cpp @@ -91,6 +91,7 @@ d->guid = guid; d->archive = Backend::Storage::getInstance()->archiveFor(feed->xmlUrl()); d->status = 0; + d->hash = 0; } void Article::initialize(RSS::Article article, Backend::FeedStorage* archive) @@ -101,7 +102,7 @@ + article.commentsLink().url() ); d->guid = article.guid(); - + if (!d->archive->contains(d->guid)) { d->archive->addEntry(d->guid); @@ -113,7 +114,7 @@ } else { // article is not deleted, let's add it to the archive - + d->archive->setHash(d->guid, hash() ); TQString title = article.title().isEmpty() ? buildTitle(article.description()) : article.title(); d->archive->setTitle(d->guid, title); @@ -358,7 +359,6 @@ int Article::comments() const { - return d->archive->comments(d->guid); } diff --git a/akregator/src/articlefilter.h b/akregator/src/articlefilter.h index 5f1e7af..535a731 100644 --- a/akregator/src/articlefilter.h +++ b/akregator/src/articlefilter.h @@ -145,6 +145,10 @@ class AbstractAction { public: + AbstractAction() {} + virtual ~AbstractAction() {} + + public: virtual void exec(Article& article) = 0; virtual void writeConfig(TDEConfig* config) const = 0; diff --git a/akregator/src/articlelistview.cpp b/akregator/src/articlelistview.cpp index 2324096..a0e5c8b 100644 --- a/akregator/src/articlelistview.cpp +++ b/akregator/src/articlelistview.cpp @@ -89,6 +89,7 @@ { public: ColumnLayoutVisitor(ArticleListView* view) : m_view(view) {} + virtual ~ColumnLayoutVisitor() {} virtual bool visitTagNode(TagNode* /*node*/) { diff --git a/akregator/src/articleviewer.cpp b/akregator/src/articleviewer.cpp index 96b269e..3b1cc6d 100644 --- a/akregator/src/articleviewer.cpp +++ b/akregator/src/articleviewer.cpp @@ -66,6 +66,7 @@ public: ShowSummaryVisitor(ArticleViewer* view) : m_view(view) {} + virtual ~ShowSummaryVisitor() {} virtual bool visitFeed(Feed* node) { diff --git a/akregator/src/feed.cpp b/akregator/src/feed.cpp index 3b0d810..7e7f59e 100644 --- a/akregator/src/feed.cpp +++ b/akregator/src/feed.cpp @@ -445,7 +445,7 @@ RSS::Article::List::ConstIterator en = d_articles.end(); int nudge=0; - + TQValueList<Article> deletedArticles = d->deletedArticles; for (it = d_articles.begin(); it != en; ++it) @@ -460,21 +460,21 @@ TQValueList<ArticleInterceptor*> interceptors = ArticleInterceptorManager::self()->interceptors(); for (TQValueList<ArticleInterceptor*>::ConstIterator it = interceptors.begin(); it != interceptors.end(); ++it) (*it)->processArticle(mya); - + d->addedArticlesNotify.append(mya); - + if (!mya.isDeleted() && !markImmediatelyAsRead()) mya.setStatus(Article::New); else mya.setStatus(Article::Read); - + changed = true; } else // article is in list { // if the article's guid is no hash but an ID, we have to check if the article was updated. That's done by comparing the hash values. Article old = d->articles[(*it).guid()]; - Article mya(*it, this); + Article mya(*it, this); if (!mya.guidIsHash() && mya.hash() != old.hash() && !old.isDeleted()) { mya.setKeep(old.keep()); @@ -491,7 +491,7 @@ } else if (old.isDeleted()) deletedArticles.remove(mya); - } + } } TQValueList<Article>::ConstIterator dit = deletedArticles.begin(); diff --git a/akregator/src/feedlist.cpp b/akregator/src/feedlist.cpp index 708b4fb..0c34e39 100644 --- a/akregator/src/feedlist.cpp +++ b/akregator/src/feedlist.cpp @@ -52,6 +52,7 @@ { public: AddNodeVisitor(FeedList* list) : m_list(list) {} + virtual ~AddNodeVisitor() {} virtual bool visitFeed(Feed* node) @@ -69,6 +70,7 @@ { public: RemoveNodeVisitor(FeedList* list) : m_list(list) {} + virtual ~RemoveNodeVisitor() {} virtual bool visitFeed(Feed* node) { diff --git a/akregator/src/feedlistview.cpp b/akregator/src/feedlistview.cpp index d6ea394..f0a3736 100644 --- a/akregator/src/feedlistview.cpp +++ b/akregator/src/feedlistview.cpp @@ -78,6 +78,7 @@ { public: ConnectNodeVisitor(NodeListView* view) : m_view(view) {} + virtual ~ConnectNodeVisitor() {} virtual bool visitTreeNode(TreeNode* node) { @@ -114,6 +115,7 @@ { public: DisconnectNodeVisitor(NodeListView* view) : m_view(view) {} + virtual ~DisconnectNodeVisitor() {} virtual bool visitTagNode(TagNode* node) { @@ -153,6 +155,7 @@ public: DeleteItemVisitor(NodeListView* view) : m_view(view) {} + virtual ~DeleteItemVisitor() {} virtual bool visitTreeNode(TreeNode* node) { @@ -204,6 +207,7 @@ { public: CreateItemVisitor(NodeListView* view) : m_view(view) {} + virtual ~CreateItemVisitor() {} virtual bool visitTagNode(TagNode* node) { diff --git a/akregator/src/plugin.cpp b/akregator/src/plugin.cpp index 495dabc..a90136b 100644 --- a/akregator/src/plugin.cpp +++ b/akregator/src/plugin.cpp @@ -8,11 +8,13 @@ Plugin::Plugin() -{} +{ +} Plugin::~Plugin() -{} +{ +} void diff --git a/akregator/src/plugin.h b/akregator/src/plugin.h index 650a4a9..f440842 100644 --- a/akregator/src/plugin.h +++ b/akregator/src/plugin.h @@ -14,7 +14,6 @@ #include <tqmap.h> #include <tqstring.h> - namespace Akregator { // class PluginConfig; diff --git a/akregator/src/simplenodeselector.cpp b/akregator/src/simplenodeselector.cpp index 4291bb4..a4f1d4b 100644 --- a/akregator/src/simplenodeselector.cpp +++ b/akregator/src/simplenodeselector.cpp @@ -93,6 +93,7 @@ public: NodeVisitor(SimpleNodeSelector* view) : TreeNodeVisitor(), m_view(view) {} + virtual ~NodeVisitor() {} void createItems(TreeNode* node) { diff --git a/akregator/src/storagefactory.h b/akregator/src/storagefactory.h index 93ab7f7..3505ef4 100644 --- a/akregator/src/storagefactory.h +++ b/akregator/src/storagefactory.h @@ -38,18 +38,21 @@ class AKREGATOR_EXPORT StorageFactory { public: - + + StorageFactory() {} + virtual ~StorageFactory() {} + ** Diff limit reached (max: 250 lines) ** |