diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-16 01:01:25 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-16 01:01:25 +0000 |
commit | 20cb5f48d36abeb25bbf6cdd6a5f6debe014e8b1 (patch) | |
tree | c8cf260017c72af1080cdbb5861f1e11a250a271 /app/tree_model.h | |
parent | 131a86821a98e41d363080d9d7925e514ab57869 (diff) | |
download | chromium_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/tree_model.h')
-rw-r--r-- | app/tree_model.h | 11 |
1 files changed, 10 insertions, 1 deletions
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_ |