⚠️ Forum Maintenance: Feb 6th, 8am - 14pm (UTC+2)

Why Wasn't 4.8.5 WebKit HashSet.h patch released? it still breaks in MSVC2012

  • Hi all,

    There was a patch released for the file src/3rdparty/webkit/Source/JavaScriptCore/wtf/HashSet.h so that it wouldn' break under MSVC2012, in 4.8.4 I had to manually apply it so it would build, I thought it was gonna be released for 4.8.5 but still breaks.

    Do you think it will be applied to future releases? thanks.

    The patch is from this changesets: index 82245f3..7298558 100644
    (The AT characters are escaped so the forum doesn't break the text)

    The patch looks like this:

    diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/HashSet.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/HashSet.h
    index 82245f3..7298558 100644
    --- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/HashSet.h
    +++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/HashSet.h
    @@ -92,6 +92,17 @@ namespace WTF {
    friend void deleteAllValues<>(const HashSet&);
    friend void fastDeleteAllValues<>(const HashSet&);

    •    // msvc2012 has trouble constructing a HashTableConstIteratorAdapter from a HashTableIterator
    •    // despite the existence of a const_iterator cast method on the latter class.
    •    pair<iterator, bool> iterator_const_cast(const pair<typename HashTableType::iterator, bool>& p)
    •    {
    •        // Spell out the full conversion chain for clarity, although any of the "hint"
    •        // given by the alternatives below would have been enough.
    •        return make_pair(iterator(HashTableType::const_iterator(p.first)), p.second);
    •        //     return make_pair(iterator(p.first), p.second);
    •        //     return make_pair(HashTableType::const_iterator(p.first), p.second);
    •    }
    •    HashTableType m_impl;

    @@ -177,7 +188,7 @@ namespace WTF {
    template<typename T, typename U, typename V>
    inline pair<typename HashSet<T, U, V>::iterator, bool> HashSet<T, U, V>::add(const ValueType& value)

    •    return m_impl.add(value);
    •    return iterator_const_cast(m_impl.add(value));


      template<typename Value, typename HashFunctions, typename Traits>
      @@ -186,7 +197,7 @@ namespace WTF {
      HashSet<Value, HashFunctions, Traits>::add(const T& value)
      typedef HashSetTranslatorAdapter<ValueType, ValueTraits, T, HashTranslator> Adapter;

    •    return m_impl.template addPassingHashCode<T, T, Adapter>(value, value);
    •    return iterator_const_cast(m_impl.template addPassingHashCode<T, T, Adapter>(value, value));


      template<typename T, typename U, typename V>

  • In 5.0.2 the patch hasn't been applied, sorry :/

  • OK

    Found the bug number, but it's still marked as unresolved, even though there's a patch available.

    Here's the link: "QTBUG-28335":https://bugreports.qt-project.org/browse/QTBUG-28335

  • Moderators

    Qt gets code directly from the WebKit project, so the patch needs to be submitted upstream to WebKit.

    After it has been merged upstream, it will be pushed into the Qt code base.

Log in to reply