summaryrefslogtreecommitdiffstats
path: root/ipc
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 /ipc
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 'ipc')
-rw-r--r--ipc/ipc_logging.h5
-rw-r--r--ipc/ipc_sync_message.h9
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_