Changeset 207070 in webkit


Ignore:
Timestamp:
Oct 11, 2016 2:18:15 AM (8 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r205836 - [WTF] HashTable's rehash is not compatible to Ref<T> and ASan
https://bugs.webkit.org/show_bug.cgi?id=161763

Reviewed by Darin Adler.

Destructors of HashTable's empty values need to be called while ones of deleted values don't.

  • wtf/HashTable.h:

(WTF::KeyTraits>::deallocateTable):

  • wtf/Ref.h:
Location:
releases/WebKitGTK/webkit-2.14/Source/WTF
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.14/Source/WTF/ChangeLog

    r207064 r207070  
     12016-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>
     2
     3        [WTF] HashTable's rehash is not compatible to Ref<T> and ASan
     4        https://bugs.webkit.org/show_bug.cgi?id=161763
     5
     6        Reviewed by Darin Adler.
     7
     8        Destructors of HashTable's empty values need to be called while ones of deleted values don't.
     9
     10        * wtf/HashTable.h:
     11        (WTF::KeyTraits>::deallocateTable):
     12        * wtf/Ref.h:
     13
    1142016-09-09  Mark Lam  <mark.lam@apple.com>
    215
  • releases/WebKitGTK/webkit-2.14/Source/WTF/wtf/HashTable.h

    r207062 r207070  
    11541154    {
    11551155        for (unsigned i = 0; i < size; ++i) {
    1156             if (!isEmptyOrDeletedBucket(table[i]))
     1156            if (!isDeletedBucket(table[i]))
    11571157                table[i].~ValueType();
    11581158        }
     
    11981198        Value* newEntry = nullptr;
    11991199        for (unsigned i = 0; i != oldTableSize; ++i) {
    1200             if (isEmptyOrDeletedBucket(oldTable[i])) {
     1200            if (isDeletedBucket(oldTable[i])) {
    12011201                ASSERT(std::addressof(oldTable[i]) != entry);
     1202                continue;
     1203            }
     1204
     1205            if (isEmptyBucket(oldTable[i])) {
     1206                ASSERT(std::addressof(oldTable[i]) != entry);
     1207                oldTable[i].~ValueType();
    12021208                continue;
    12031209            }
  • releases/WebKitGTK/webkit-2.14/Source/WTF/wtf/Ref.h

    r203303 r207070  
    115115    }
    116116
    117     // Hash table deleted/empty values, which are only constructed and never copied or destroyed.
     117    // Hash table deleted values, which are only constructed and never copied or destroyed.
    118118    Ref(HashTableDeletedValueType) : m_ptr(hashTableDeletedValue()) { }
    119119    bool isHashTableDeletedValue() const { return m_ptr == hashTableDeletedValue(); }
Note: See TracChangeset for help on using the changeset viewer.