Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Unified Diff: dbus/property.h

Issue 419203003: Fix dbus::Property compile failure on gcc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dbus/property.h
diff --git a/dbus/property.h b/dbus/property.h
index d30e076675674073b0b4775a277d4fcfaeeea6d1..547c9420ba0156fcfe4e71318064796ed2a3be28 100644
--- a/dbus/property.h
+++ b/dbus/property.h
@@ -409,81 +409,99 @@ class CHROME_DBUS_EXPORT Property : public PropertyBase {
template <> Property<uint8>::Property();
Nico 2014/07/25 16:46:50 …and this line is wrong too I think. Since the con
tzik 2014/07/29 05:52:36 These Property::Property()s seem specialization ra
template <> bool Property<uint8>::PopValueFromReader(MessageReader* reader);
template <> void Property<uint8>::AppendSetValueToWriter(MessageWriter* writer);
-extern template class CHROME_DBUS_EXPORT Property<uint8>;
Nico 2014/07/25 16:37:23 Just removing the CHROME_DBUS_EXPORT should be eno
tzik 2014/07/29 05:52:36 That doesn't build successfully on clang+asan on l
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);
+
+#if defined(COMPILER_GCC) && !defined(__clang__)
+extern template class Property<uint8>;
+extern template class Property<bool>;
+extern template class Property<int16>;
+extern template class Property<uint16>;
+extern template class Property<int32>;
+extern template class Property<uint32>;
+extern template class Property<int64>;
+extern template class Property<uint64>;
+extern template class Property<double>;
+extern template class Property<std::string>;
+extern template class Property<ObjectPath>;
+extern template class Property<std::vector<std::string> >;
+extern template class Property<std::vector<ObjectPath> >;
+extern template class Property<std::vector<uint8> >;
+#else
+extern template class CHROME_DBUS_EXPORT Property<uint8>;
+extern template class CHROME_DBUS_EXPORT Property<bool>;
+extern template class CHROME_DBUS_EXPORT Property<int16>;
+extern template class CHROME_DBUS_EXPORT Property<uint16>;
+extern template class CHROME_DBUS_EXPORT Property<int32>;
+extern template class CHROME_DBUS_EXPORT Property<uint32>;
+extern template class CHROME_DBUS_EXPORT Property<int64>;
+extern template class CHROME_DBUS_EXPORT Property<uint64>;
+extern template class CHROME_DBUS_EXPORT Property<double>;
+extern template class CHROME_DBUS_EXPORT Property<std::string>;
+extern template class CHROME_DBUS_EXPORT Property<ObjectPath>;
+extern template class CHROME_DBUS_EXPORT Property<std::vector<std::string> >;
+extern template class CHROME_DBUS_EXPORT Property<std::vector<ObjectPath> >;
extern template class CHROME_DBUS_EXPORT Property<std::vector<uint8> >;
+#endif
} // namespace dbus
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698