Ignore:
Timestamp:
Sep 19, 2008, 9:35:33 PM (17 years ago)
Author:
[email protected]
Message:

2008-09-19 Sam Weinig <[email protected]>

Roll r36694 back in. It did not cause the crash.

  • JavaScriptCore.exp:
  • VM/JSPropertyNameIterator.cpp: (JSC::JSPropertyNameIterator::~JSPropertyNameIterator): (JSC::JSPropertyNameIterator::invalidate):
  • VM/JSPropertyNameIterator.h: (JSC::JSPropertyNameIterator::JSPropertyNameIterator): (JSC::JSPropertyNameIterator::create):
  • kjs/JSObject.cpp: (JSC::JSObject::getPropertyNames):
  • kjs/PropertyMap.cpp: (JSC::PropertyMap::getEnumerablePropertyNames):
  • kjs/PropertyMap.h:
  • kjs/PropertyNameArray.cpp: (JSC::PropertyNameArray::add):
  • kjs/PropertyNameArray.h: (JSC::PropertyNameArrayData::create): (JSC::PropertyNameArrayData::propertyNameVector): (JSC::PropertyNameArrayData::setCachedPrototypeChain): (JSC::PropertyNameArrayData::cachedPrototypeChain): (JSC::PropertyNameArrayData::begin): (JSC::PropertyNameArrayData::end): (JSC::PropertyNameArrayData::PropertyNameArrayData): (JSC::PropertyNameArray::PropertyNameArray): (JSC::PropertyNameArray::addKnownUnique): (JSC::PropertyNameArray::size): (JSC::PropertyNameArray::operator[]): (JSC::PropertyNameArray::begin): (JSC::PropertyNameArray::end): (JSC::PropertyNameArray::setData): (JSC::PropertyNameArray::data): (JSC::PropertyNameArray::releaseData):
  • kjs/StructureID.cpp: (JSC::structureIDChainsAreEqual): (JSC::StructureID::getEnumerablePropertyNames): (JSC::StructureID::clearEnumerationCache): (JSC::StructureID::createCachedPrototypeChain):
  • kjs/StructureID.h:
File:
1 edited

Legend:

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

    r36696 r36701  
    2323
    2424#include "JSObject.h"
     25#include "PropertyNameArray.h"
    2526#include "protect.h"
    2627#include <algorithm>
     
    473474}
    474475
    475 void PropertyMap::getEnumerablePropertyNames(Vector<UString::Rep*>& propertyNames) const
     476void PropertyMap::getEnumerablePropertyNames(PropertyNameArray& propertyNames) const
    476477{
    477478    if (!m_table)
     
    492493            }
    493494        }
    494         propertyNames.reserveCapacity(i);
    495         for (int k = 0; k < i; ++k)
    496             propertyNames.append(a[k]->key);
     495        if (!propertyNames.size()) {
     496            for (int k = 0; k < i; ++k)
     497                propertyNames.addKnownUnique(a[k]->key);
     498        } else {
     499            for (int k = 0; k < i; ++k)
     500                propertyNames.add(a[k]->key);
     501        }
     502
    497503        return;
    498504    }
     
    515521
    516522    // Put the keys of the sorted entries into the list.
    517     propertyNames.reserveCapacity(sortedEnumerables.size());
    518     for (size_t i = 0; i < sortedEnumerables.size(); ++i)
    519         propertyNames.append(sortedEnumerables[i]->key);
     523    if (!propertyNames.size()) {
     524        for (size_t i = 0; i < sortedEnumerables.size(); ++i)
     525            propertyNames.addKnownUnique(sortedEnumerables[i]->key);
     526    } else {
     527        for (size_t i = 0; i < sortedEnumerables.size(); ++i)
     528            propertyNames.add(sortedEnumerables[i]->key);
     529    }
    520530}
    521531
Note: See TracChangeset for help on using the changeset viewer.