summaryrefslogtreecommitdiffstats
path: root/ui/gfx/point_f.h
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-19 02:12:02 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-19 02:12:02 +0000
commit9ff681f511172329819e23459050c33b424fe950 (patch)
treef5d153e72464b8eb2035ae1872b139234d217cc0 /ui/gfx/point_f.h
parentb9256cd092d5ebeae70806ef8b0f332dcea3b1d3 (diff)
downloadchromium_src-9ff681f511172329819e23459050c33b424fe950.zip
chromium_src-9ff681f511172329819e23459050c33b424fe950.tar.gz
chromium_src-9ff681f511172329819e23459050c33b424fe950.tar.bz2
Add instantiation declarations for PointBase, SizeBase, RectBase
These templates have explicit instantiations in point.cc, point_f.cc, size.cc, size_f.cc, rect.cc, rect_f.cc. This suggests that the intent was to have these instantiations in a single translation unit. Without an explicit instantiation declaration, they would still be weakly emitted to all translation units that use point.h (etc). Add an explicit instantiation declaration to stop this from happening. Thanks to Rafael Espindola for help with this patch. BUG=90078 TEST=do a components debug build on mac. observe fewer linker errors. Normal builds get a bit faster too. Review URL: https://chromiumcodereview.appspot.com/10386220 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138012 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/point_f.h')
-rw-r--r--ui/gfx/point_f.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/ui/gfx/point_f.h b/ui/gfx/point_f.h
index c1bf5fb..d681dca 100644
--- a/ui/gfx/point_f.h
+++ b/ui/gfx/point_f.h
@@ -28,6 +28,10 @@ class UI_EXPORT PointF : public PointBase<PointF, float> {
std::string ToString() const;
};
+#if !defined(COMPILER_MSVC)
+extern template class PointBase<PointF, float>;
+#endif
+
} // namespace gfx
#endif // UI_GFX_POINT_F_H_