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 /ipc | |
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 'ipc')
-rw-r--r-- | ipc/ipc_logging.h | 5 | ||||
-rw-r--r-- | ipc/ipc_sync_message.h | 9 |
2 files changed, 9 insertions, 5 deletions
diff --git a/ipc/ipc_logging.h b/ipc/ipc_logging.h index ad0559b..271b2a1 100644 --- a/ipc/ipc_logging.h +++ b/ipc/ipc_logging.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. @@ -29,6 +29,9 @@ class Logging { class Consumer { public: virtual void Log(const LogData& data) = 0; + + protected: + virtual ~Consumer() {} }; void SetConsumer(Consumer* consumer); diff --git a/ipc/ipc_sync_message.h b/ipc/ipc_sync_message.h index 37c6c71..48e9f99 100644 --- a/ipc/ipc_sync_message.h +++ b/ipc/ipc_sync_message.h @@ -1,9 +1,9 @@ -// 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. -#ifndef IPC_IPC_SYNC_MESSAGE_H__ -#define IPC_IPC_SYNC_MESSAGE_H__ +#ifndef IPC_IPC_SYNC_MESSAGE_H_ +#define IPC_IPC_SYNC_MESSAGE_H_ #if defined(OS_WIN) #include <windows.h> @@ -84,6 +84,7 @@ class SyncMessage : public Message { // Used to deserialize parameters from a reply to a synchronous message class MessageReplyDeserializer { public: + virtual ~MessageReplyDeserializer() {} bool SerializeOutputParameters(const Message& msg); private: // Derived classes need to implement this, using the given iterator (which @@ -93,4 +94,4 @@ class MessageReplyDeserializer { } // namespace IPC -#endif // IPC_IPC_SYNC_MESSAGE_H__ +#endif // IPC_IPC_SYNC_MESSAGE_H_ |