Changeset 49726 in webkit for trunk/JavaScriptCore/runtime/PropertyNameArray.h
- Timestamp:
- Oct 16, 2009, 7:31:42 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/PropertyNameArray.h
r49717 r49726 25 25 #include "Identifier.h" 26 26 #include <wtf/HashSet.h> 27 #include <wtf/OwnArrayPtr.h>28 27 #include <wtf/Vector.h> 29 28 … … 33 32 class StructureChain; 34 33 35 // FIXME: Rename to PropertyNameArray.36 34 class PropertyNameArrayData : public RefCounted<PropertyNameArrayData> { 37 35 public: 38 36 typedef Vector<Identifier, 20> PropertyNameVector; 37 typedef PropertyNameVector::const_iterator const_iterator; 39 38 40 39 static PassRefPtr<PropertyNameArrayData> create() { return adoptRef(new PropertyNameArrayData); } 41 40 41 const_iterator begin() const { return m_propertyNameVector.begin(); } 42 const_iterator end() const { return m_propertyNameVector.end(); } 43 42 44 PropertyNameVector& propertyNameVector() { return m_propertyNameVector; } 45 46 void setCachedStructure(Structure* structure) { m_cachedStructure = structure; } 47 Structure* cachedStructure() const { return m_cachedStructure; } 48 49 void setCachedPrototypeChain(NonNullPassRefPtr<StructureChain> cachedPrototypeChain) { m_cachedPrototypeChain = cachedPrototypeChain; } 50 StructureChain* cachedPrototypeChain() { return m_cachedPrototypeChain.get(); } 43 51 44 52 private: 45 53 PropertyNameArrayData() 54 : m_cachedStructure(0) 46 55 { 47 56 } 48 57 49 58 PropertyNameVector m_propertyNameVector; 59 Structure* m_cachedStructure; 60 RefPtr<StructureChain> m_cachedPrototypeChain; 50 61 }; 51 62 52 // FIXME: Rename to PropertyNameArrayBuilder.53 63 class PropertyNameArray { 54 64 public: 65 typedef PropertyNameArrayData::const_iterator const_iterator; 66 55 67 PropertyNameArray(JSGlobalData* globalData) 56 68 : m_data(PropertyNameArrayData::create()) … … 73 85 void addKnownUnique(UString::Rep* identifier) { m_data->propertyNameVector().append(Identifier(m_globalData, identifier)); } 74 86 87 size_t size() const { return m_data->propertyNameVector().size(); } 88 75 89 Identifier& operator[](unsigned i) { return m_data->propertyNameVector()[i]; } 76 90 const Identifier& operator[](unsigned i) const { return m_data->propertyNameVector()[i]; } 77 91 92 const_iterator begin() const { return m_data->begin(); } 93 const_iterator end() const { return m_data->end(); } 94 78 95 void setData(PassRefPtr<PropertyNameArrayData> data) { m_data = data; } 79 96 PropertyNameArrayData* data() { return m_data.get(); } 97 80 98 PassRefPtr<PropertyNameArrayData> releaseData() { return m_data.release(); } 81 99 82 // FIXME: Remove these functions. 83 typedef PropertyNameArrayData::PropertyNameVector::const_iterator const_iterator; 84 size_t size() const { return m_data->propertyNameVector().size(); } 85 const_iterator begin() const { return m_data->propertyNameVector().begin(); } 86 const_iterator end() const { return m_data->propertyNameVector().end(); } 100 void setShouldCache(bool shouldCache) { m_shouldCache = shouldCache; } 101 bool shouldCache() const { return m_shouldCache; } 87 102 88 103 private:
Note:
See TracChangeset
for help on using the changeset viewer.