Changeset 35195 in webkit for trunk/JavaScriptCore/kjs/lookup.cpp


Ignore:
Timestamp:
Jul 16, 2008, 1:07:11 AM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Geoff.

Dereference identifiers when deleting a hash table (fixes leaks with private JSGlobalData
objects).

  • kjs/JSGlobalData.cpp: (KJS::JSGlobalData::~JSGlobalData):
  • kjs/lookup.cpp: (KJS::HashTable::deleteTable):
  • kjs/lookup.h:
  • kjs/lexer.cpp: (KJS::Lexer::~Lexer) HashTable cannot have a destructor, because check-for-global-initializers complains about having a global constructor then.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/lookup.cpp

    r35027 r35195  
    4343}
    4444
     45void HashTable::deleteTable() const
     46{
     47    if (table) {
     48        for (int i = 0; i != hashSizeMask + 1; ++i) {
     49            if (UString::Rep* key = table[i].key)
     50                key->deref();
     51        }
     52        delete[] table;
     53        table = 0;
     54    }
     55}
     56
    4557JSValue* staticFunctionGetter(ExecState* exec, const Identifier& propertyName, const PropertySlot& slot)
    4658{
Note: See TracChangeset for help on using the changeset viewer.