Changeset 77098 in webkit for trunk/Source/JavaScriptCore/runtime/JSArray.h
- Timestamp:
- Jan 30, 2011, 5:13:10 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/JSArray.h
r77044 r77098 28 28 namespace JSC { 29 29 30 typedef HashMap<unsigned, JSValue> SparseArrayValueMap;30 typedef HashMap<unsigned, WriteBarrier<Unknown> > SparseArrayValueMap; 31 31 32 32 // This struct holds the actual data values of an array. A JSArray object points to it's contained ArrayStorage … … 45 45 bool m_inCompactInitialization; 46 46 #endif 47 JSValuem_vector[1];47 WriteBarrier<Unknown> m_vector[1]; 48 48 }; 49 49 … … 68 68 explicit JSArray(NonNullPassRefPtr<Structure>); 69 69 JSArray(NonNullPassRefPtr<Structure>, unsigned initialLength, ArrayCreationMode); 70 JSArray( NonNullPassRefPtr<Structure>, const ArgList& initialValues);70 JSArray(JSGlobalData&, NonNullPassRefPtr<Structure>, const ArgList& initialValues); 71 71 virtual ~JSArray(); 72 72 … … 95 95 { 96 96 ASSERT(canGetIndex(i)); 97 return m_storage->m_vector[i] ;97 return m_storage->m_vector[i].get(); 98 98 } 99 99 100 100 bool canSetIndex(unsigned i) { return i < m_vectorLength; } 101 void setIndex( unsigned i, JSValue v)101 void setIndex(JSGlobalData& globalData, unsigned i, JSValue v) 102 102 { 103 103 ASSERT(canSetIndex(i)); 104 104 105 JSValue& x = m_storage->m_vector[i];105 WriteBarrier<Unknown>& x = m_storage->m_vector[i]; 106 106 if (!x) { 107 107 ArrayStorage *storage = m_storage; … … 110 110 storage->m_length = i + 1; 111 111 } 112 x = v;113 } 114 115 void uncheckedSetIndex( unsigned i, JSValue v)112 x.set(globalData, this, v); 113 } 114 115 void uncheckedSetIndex(JSGlobalData& globalData, unsigned i, JSValue v) 116 116 { 117 117 ASSERT(canSetIndex(i)); … … 120 120 ASSERT(storage->m_inCompactInitialization); 121 121 #endif 122 storage->m_vector[i] = v;122 storage->m_vector[i].set(globalData, this, v); 123 123 } 124 124 … … 195 195 SparseArrayValueMap::iterator end = map->end(); 196 196 for (SparseArrayValueMap::iterator it = map->begin(); it != end; ++it) 197 markStack.append( it->second);197 markStack.append(&it->second); 198 198 } 199 199 }
Note:
See TracChangeset
for help on using the changeset viewer.