diff options
author | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-25 04:04:27 +0000 |
---|---|---|
committer | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-25 04:04:27 +0000 |
commit | 2934be455959aced9205bb4c7b48768ff06eea6d (patch) | |
tree | a306c59447cfd5ae736cfbb7d7e4f6cca8f21731 /dbus | |
parent | 79a15f553df2fe89424384fc9fdfe9f14818f41b (diff) | |
download | chromium_src-2934be455959aced9205bb4c7b48768ff06eea6d.zip chromium_src-2934be455959aced9205bb4c7b48768ff06eea6d.tar.gz chromium_src-2934be455959aced9205bb4c7b48768ff06eea6d.tar.bz2 |
[DBus] Explicitly instantiate dbusProperty variant
dbus::Property<std::vector<uint8> > isn't instantiated in libdbus in non-ChromeOS build + latest clang.
That causes instantiation of the template in dbus_unittests, and causes link failure.
Review URL: https://codereview.chromium.org/408143012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285475 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus')
-rw-r--r-- | dbus/property.cc | 15 | ||||
-rw-r--r-- | dbus/property.h | 14 |
2 files changed, 29 insertions, 0 deletions
diff --git a/dbus/property.cc b/dbus/property.cc index b518e99..9475a07 100644 --- a/dbus/property.cc +++ b/dbus/property.cc @@ -478,4 +478,19 @@ void Property<std::vector<uint8> >::AppendSetValueToWriter( writer->CloseContainer(&variant_writer); } +template class Property<uint8>; +template class Property<bool>; +template class Property<int16>; +template class Property<uint16>; +template class Property<int32>; +template class Property<uint32>; +template class Property<int64>; +template class Property<uint64>; +template class Property<double>; +template class Property<std::string>; +template class Property<ObjectPath>; +template class Property<std::vector<std::string> >; +template class Property<std::vector<ObjectPath> >; +template class Property<std::vector<uint8> >; + } // namespace dbus diff --git a/dbus/property.h b/dbus/property.h index f6baffc..d30e076 100644 --- a/dbus/property.h +++ b/dbus/property.h @@ -409,67 +409,81 @@ class CHROME_DBUS_EXPORT Property : public PropertyBase { template <> Property<uint8>::Property(); template <> bool Property<uint8>::PopValueFromReader(MessageReader* reader); template <> void Property<uint8>::AppendSetValueToWriter(MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint8>; template <> Property<bool>::Property(); template <> bool Property<bool>::PopValueFromReader(MessageReader* reader); template <> void Property<bool>::AppendSetValueToWriter(MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<bool>; template <> Property<int16>::Property(); template <> bool Property<int16>::PopValueFromReader(MessageReader* reader); template <> void Property<int16>::AppendSetValueToWriter(MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<int16>; template <> Property<uint16>::Property(); template <> bool Property<uint16>::PopValueFromReader(MessageReader* reader); template <> void Property<uint16>::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint16>; template <> Property<int32>::Property(); template <> bool Property<int32>::PopValueFromReader(MessageReader* reader); template <> void Property<int32>::AppendSetValueToWriter(MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<int32>; template <> Property<uint32>::Property(); template <> bool Property<uint32>::PopValueFromReader(MessageReader* reader); template <> void Property<uint32>::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint32>; template <> Property<int64>::Property(); template <> bool Property<int64>::PopValueFromReader(MessageReader* reader); template <> void Property<int64>::AppendSetValueToWriter(MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<int64>; template <> Property<uint64>::Property(); template <> bool Property<uint64>::PopValueFromReader(MessageReader* reader); template <> void Property<uint64>::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<uint64>; template <> Property<double>::Property(); template <> bool Property<double>::PopValueFromReader(MessageReader* reader); template <> void Property<double>::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<double>; template <> bool Property<std::string>::PopValueFromReader( MessageReader* reader); template <> void Property<std::string>::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::string>; template <> bool Property<ObjectPath>::PopValueFromReader( MessageReader* reader); template <> void Property<ObjectPath>::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<ObjectPath>; template <> bool Property<std::vector<std::string> >::PopValueFromReader( MessageReader* reader); template <> void Property<std::vector<std::string> >::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::vector<std::string> >; template <> bool Property<std::vector<ObjectPath> >::PopValueFromReader( MessageReader* reader); template <> void Property<std::vector<ObjectPath> >::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::vector<ObjectPath> >; template <> bool Property<std::vector<uint8> >::PopValueFromReader( MessageReader* reader); template <> void Property<std::vector<uint8> >::AppendSetValueToWriter( MessageWriter* writer); +extern template class CHROME_DBUS_EXPORT Property<std::vector<uint8> >; } // namespace dbus |