dllexport Pickle::WriteBytesStatic

WriteBytesStatic is called by methods defined in pickle.h (e.g. WriteInt,
which calls WritePod<4>). If those methods are inlined (MSVC doesn't seem
to do that, but Clang does), the definition of WriteBytesStatic needs to
be available across the dll boundry.

(Note that dllimport/export isn't inherited by class member templates,
but the visibility attribute that we use on other platforms is.)

BUG=82385
TEST=build ipc.dll with Clang in a shared_library Release build
R=piman@chromium.org, rnk@chromium.org, thakis@chromium.org

Review URL: https://codereview.chromium.org/327613002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@276218 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: ba721606c1d309ff0e98068d717aaf1f994455d5
diff --git a/base/pickle.h b/base/pickle.h
index 70b8eef..2e3cd36 100644
--- a/base/pickle.h
+++ b/base/pickle.h
@@ -337,7 +337,7 @@
   size_t write_offset_;
 
   // Just like WriteBytes, but with a compile-time size, for performance.
-  template<size_t length> void WriteBytesStatic(const void* data);
+  template<size_t length> void BASE_EXPORT WriteBytesStatic(const void* data);
 
   // Writes a POD by copying its bytes.
   template <typename T> bool WritePOD(const T& data) {