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 /views | |
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 'views')
-rw-r--r-- | views/accelerator.h | 7 | ||||
-rw-r--r-- | views/view.h | 8 |
2 files changed, 13 insertions, 2 deletions
diff --git a/views/accelerator.h b/views/accelerator.h index a8d4c16..82be336 100644 --- a/views/accelerator.h +++ b/views/accelerator.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. @@ -32,6 +32,8 @@ class Accelerator : public menus::Accelerator { modifiers_ |= Event::EF_ALT_DOWN; } + virtual ~Accelerator() {} + bool IsShiftDown() const { return (modifiers_ & Event::EF_SHIFT_DOWN) == Event::EF_SHIFT_DOWN; } @@ -54,6 +56,9 @@ class AcceleratorTarget { public: // This method should return true if the accelerator was processed. virtual bool AcceleratorPressed(const Accelerator& accelerator) = 0; + + protected: + virtual ~AcceleratorTarget() {} }; } diff --git a/views/view.h b/views/view.h index ef806ea..13a85ee 100644 --- a/views/view.h +++ b/views/view.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. @@ -68,6 +68,9 @@ class ContextMenuController { int x, int y, bool is_mouse_gesture) = 0; + + protected: + virtual ~ContextMenuController() {} }; // DragController is responsible for writing drag data for a view, as well as @@ -94,6 +97,9 @@ class DragController { int press_y, int x, int y) = 0; + + protected: + virtual ~DragController() {} }; ///////////////////////////////////////////////////////////////////////////// |