+2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com>
+
+ REGRESSION(r225769): Build errors with constexpr std::tie on older gcc
+ https://bugs.webkit.org/show_bug.cgi?id=180692
+
+ Reviewed by Carlos Garcia Campos.
+
+ Due to libstdc++'s bug[1], std::tie is not annotated with constexpr in libstdc++ 5.
+ This patch adds WTF::tie for a work around. Since we do not want to
+ include <tuple> in StdLibExtras.h, we define this function for all
+ the compilers.
+
+ [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65978
+
+ * wtf/StdLibExtras.h:
+
2017-12-13 Mark Lam <mark.lam@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
return dstIter;
}
+// libstdc++5 does not have constexpr std::tie. Since we cannot redefine std::tie with constexpr, we define WTF::tie instead.
+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65978
+template <class ...Args>
+inline constexpr std::tuple<Args&...> tie(Args&... values) noexcept
+{
+ return std::tuple<Args&...>(values...);
+}
+
} // namespace WTF
// This version of placement new omits a 0 check.
+2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com>
+
+ REGRESSION(r225769): Build errors with constexpr std::tie on older gcc
+ https://bugs.webkit.org/show_bug.cgi?id=180692
+
+ Reviewed by Carlos Garcia Campos.
+
+ * platform/graphics/FontSelectionAlgorithm.h:
+ (WebCore::FontSelectionRange::operator== const):
+ (WebCore::FontSelectionRequest::tied const):
+ (WebCore::FontSelectionCapabilities::tied const):
+ (WebCore::FontSelectionSpecifiedCapabilities:: const):
+
2017-12-13 Daniel Bates <dabates@apple.com>
Fix the Windows build after <https://trac.webkit.org/changeset/225879>
constexpr bool operator==(const FontSelectionRange& other) const
{
- return std::tie(minimum, maximum) == std::tie(other.minimum, other.maximum);
+ return WTF::tie(minimum, maximum) == WTF::tie(other.minimum, other.maximum);
}
constexpr bool isValid() const
constexpr std::tuple<Value, Value, Value> tied() const
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
#if !COMPILER_SUPPORTS(NSDMI_FOR_AGGREGATES)
constexpr std::tuple<Range, Range, Range> tied() const
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
void expand(const FontSelectionCapabilities& capabilities)
constexpr std::tuple<OptionalRange&, OptionalRange&, OptionalRange&> tied()
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
constexpr std::tuple<const OptionalRange&, const OptionalRange&, const OptionalRange&> tied() const
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
FontSelectionSpecifiedCapabilities& operator=(const Capabilities& other)