summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-16 01:01:25 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-16 01:01:25 +0000
commit20cb5f48d36abeb25bbf6cdd6a5f6debe014e8b1 (patch)
treec8cf260017c72af1080cdbb5861f1e11a250a271 /app
parent131a86821a98e41d363080d9d7925e514ab57869 (diff)
downloadchromium_src-20cb5f48d36abeb25bbf6cdd6a5f6debe014e8b1.zip
chromium_src-20cb5f48d36abeb25bbf6cdd6a5f6debe014e8b1.tar.gz
chromium_src-20cb5f48d36abeb25bbf6cdd6a5f6debe014e8b1.tar.bz2
Give classes with virtual methods virtual protected destructors instead of implicit non-virtual public destructors.
Was originally: Replace public nonvirtual destructors in classes with virtual members with protected nonvirtual destructors where possible, and with public virtual destructors where destruction of a derived class occurs. (Excluding chrome/browser/...) (Part 4 of http://www.gotw.ca/publications/mill18.htm has a rationale for why public nonvirtual destructors in classes with virtual members is dangerous.) Patch by: Jacob Mandelson (jlmjln@gmail.com) BUG=none TEST=base_unittests & app_unittests Review URL: http://codereview.chromium.org/200106 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34633 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'app')
-rw-r--r--app/animation.h5
-rw-r--r--app/table_model.h2
-rw-r--r--app/table_model_observer.h3
-rw-r--r--app/tree_model.h11
4 files changed, 19 insertions, 2 deletions
diff --git a/app/animation.h b/app/animation.h
index e6877b6..bd38fb4 100644
--- a/app/animation.h
+++ b/app/animation.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Inspired by NSAnimation
@@ -33,6 +33,9 @@ class AnimationDelegate {
// Called when an animation has been canceled.
virtual void AnimationCanceled(const Animation* animation) {
}
+
+ protected:
+ virtual ~AnimationDelegate() {}
};
// Animation
diff --git a/app/table_model.h b/app/table_model.h
index c1e61b1..02d86dd 100644
--- a/app/table_model.h
+++ b/app/table_model.h
@@ -94,6 +94,8 @@ class TableModel {
void ClearCollator();
protected:
+ virtual ~TableModel() {}
+
// Returns the collator used by CompareValues.
icu::Collator* GetCollator();
};
diff --git a/app/table_model_observer.h b/app/table_model_observer.h
index fcd50f4..cbf0d5d 100644
--- a/app/table_model_observer.h
+++ b/app/table_model_observer.h
@@ -20,6 +20,9 @@ class TableModelObserver {
// Invoked when a range of items has been removed.
virtual void OnItemsRemoved(int start, int length) = 0;
+
+ protected:
+ virtual ~TableModelObserver() {}
};
#endif // APP_TABLE_MODEL_OBSERVER_H_
diff --git a/app/tree_model.h b/app/tree_model.h
index 882c82f..86d6424 100644
--- a/app/tree_model.h
+++ b/app/tree_model.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -21,6 +21,9 @@ class TreeModelNode {
public:
// Returns the title for the node.
virtual const std::wstring& GetTitle() const = 0;
+
+ protected:
+ virtual ~TreeModelNode() {}
};
// Observer for the TreeModel. Notified of significant events to the model.
@@ -45,6 +48,9 @@ class TreeModelObserver {
// Notification that the contents of a node has changed.
virtual void TreeNodeChanged(TreeModel* model, TreeModelNode* node) = 0;
+
+ protected:
+ virtual ~TreeModelObserver() {}
};
// TreeModel ------------------------------------------------------------------
@@ -86,6 +92,9 @@ class TreeModel {
// default icon. The index is relative to the list of icons returned from
// GetIcons.
virtual int GetIconIndex(TreeModelNode* node) { return -1; }
+
+ protected:
+ virtual ~TreeModel() {}
};
#endif // APP_TREE_MODEL_H_