commit | 0f9542b7d8e81eb8aa6255438b2c1907ecc3d782 | [log] [tgz] |
---|---|---|
author | Ivan Krasin <krasin@chromium.org> | Tue May 10 05:38:54 2016 |
committer | Ivan Krasin <krasin@chromium.org> | Tue May 10 05:38:54 2016 |
tree | 032dce79937cf2f14ad06db0d2664d46b2c09a07 | |
parent | 1dea7088184dec2ebe4a8b3800aabb0afbb4b88a [diff] |
Fix visibility for CDM API types and functions. This change does three different things: 1. Renames CDM_EXPORT macro to CDM_API. While not strictly necessary, _EXPORT macros in Chrome are used for controlling visibility in the components builds. See https://chromium.googlesource.com/chromium/src/+/b387864d3341fca140a7bb837e959834d35b0591 for more details. 2. On POSIX, CDM_API will set visibility("default") for both the exporter and importer code. Otherwise, the linker is free to make optimizations which will break the code, see https://bugs.chromium.org/p/chromium/issues/detail?id=609564#c36 3. Mark interface classes with CDM_API to avoid being hit by devirtualization, see https://bugs.chromium.org/p/chromium/issues/detail?id=609564#c35 and other comments in that bug. This CL should fix UBSan Vptr buildbot, which has become recently more rigorous (after a roll of the new Clang). BUG=609564,609175 R=pcc@chromium.org, xhwang@chromium.org Review URL: https://codereview.chromium.org/1956123002 .