summaryrefslogtreecommitdiffstats
path: root/ipc/ipc_message_macros.h
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-18 23:40:33 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-18 23:40:33 +0000
commitc222df63d7c2888a876ef8d4a10889813c266a51 (patch)
tree8762851fbe2020a9b137664e5f2cca9d9007b0ab /ipc/ipc_message_macros.h
parent7c7e6e1448d2aa714a2891d3931e15a8dc9bbc07 (diff)
downloadchromium_src-c222df63d7c2888a876ef8d4a10889813c266a51.zip
chromium_src-c222df63d7c2888a876ef8d4a10889813c266a51.tar.gz
chromium_src-c222df63d7c2888a876ef8d4a10889813c266a51.tar.bz2
Reverting in an attempt to fix Win Builder 2010 (dbg).
Revert 122689 - Make IPC_MESSAGE_EXPORT more robust. Currently, files that want to export ipc messages currently do #undef IPC_MESSAGE_EXPORT #define IPC_MESSAGE_EXPORT CONTENT_EXPORT at the top, and files that don't want to export ipc messages just do nothing. This is problematic if a cc file does #include "exported_messages.h" #include "not_exported_messages.h" because the second header file picks up the #define from the first file and declares all its messages as exported. In other translation units, where not_exported_messages.h is #included without another header above it, the messages will get default visibility – so the same class ends up with different visibilities in different translation units. Instead, let ipc_message_macros.h #undef IPC_MESSAGE_EXPORT outside of the include guard, so that all files that don't set the define see it as defined to nothing. (Idea from jam@) BUG=90078 TEST=No linker errors about IPC messages when doing components build on mac. (Other linker errors remain for now.) TBR=brettw Review URL: http://codereview.chromium.org/9425006 TBR=thakis@chromium.org Review URL: https://chromiumcodereview.appspot.com/9355029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122698 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_message_macros.h')
-rw-r--r--ipc/ipc_message_macros.h15
1 files changed, 6 insertions, 9 deletions
diff --git a/ipc/ipc_message_macros.h b/ipc/ipc_message_macros.h
index f37c05b..783108e 100644
--- a/ipc/ipc_message_macros.h
+++ b/ipc/ipc_message_macros.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -173,14 +173,6 @@
// ViewHostMsg_SyncMessageName::WriteReplyParams(reply_msg, out1, out2);
// Send(reply_msg);
-// Files that want to export their ipc messages should do
-// #undef IPC_MESSAGE_EXPORT
-// #define IPC_MESSAGE_EXPORT VISIBILITY_MACRO
-// after including this header, but before using any of the macros below.
-// (This needs to be before the include guard.)
-#undef IPC_MESSAGE_EXPORT
-#define IPC_MESSAGE_EXPORT
-
#ifndef IPC_IPC_MESSAGE_MACROS_H_
#define IPC_IPC_MESSAGE_MACROS_H_
@@ -192,6 +184,11 @@
#include "ipc/ipc_message_utils_impl.h"
#endif
+// Override this to force message classes to be exported.
+#ifndef IPC_MESSAGE_EXPORT
+#define IPC_MESSAGE_EXPORT
+#endif
+
// Macros for defining structs. May be subsequently redefined.
#define IPC_STRUCT_BEGIN(struct_name) \
IPC_STRUCT_BEGIN_WITH_PARENT(struct_name, IPC::NoParams)