Changeset 37632 in webkit for trunk/JavaScriptCore
- Timestamp:
- Oct 16, 2008, 4:11:24 AM (17 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r37631 r37632 1 2008-10-16 Maciej Stachowiak <[email protected]> 2 3 Reviewed by Cameron Zwarich. 4 5 - fix for: REGRESSION: over 100 StructureIDs leak loading about:blank (result of fix for bug 21633) 6 7 Apparent slight progression (< 0.5%) on v8 benchmarks and SunSpider. 8 9 * kjs/StructureID.cpp: 10 (JSC::StructureID::~StructureID): Don't deref this object's parent's pointer to 11 itself from the destructor; that doesn't even make sense. 12 (JSC::StructureID::addPropertyTransition): Don't refer the single transition; 13 the rule is that parent StructureIDs are ref'd but child ones are not. Refing 14 the child creates a cycle. 15 1 16 2008-10-15 Alexey Proskuryakov <[email protected]> 2 17 -
trunk/JavaScriptCore/kjs/StructureID.cpp
r37630 r37632 109 109 if (m_previous) { 110 110 if (m_previous->m_usingSingleTransitionSlot) { 111 m_previous->m_transitions.singleTransition->deref();112 111 m_previous->m_transitions.singleTransition = 0; 113 112 } else { … … 120 119 m_cachedPropertyNameArrayData->setCachedStructureID(0); 121 120 122 if (m_usingSingleTransitionSlot) { 123 if (m_transitions.singleTransition) 124 m_transitions.singleTransition->deref(); 125 } else 121 if (!m_usingSingleTransitionSlot) 126 122 delete m_transitions.table; 127 123 … … 266 262 if (!structureID->m_transitions.singleTransition) { 267 263 structureID->m_transitions.singleTransition = transition.get(); 268 transition->ref();269 264 return transition.release(); 270 265 } … … 275 270 structureID->m_transitions.table = transitionTable; 276 271 transitionTable->add(make_pair(existingTransition->m_nameInPrevious, existingTransition->m_attributesInPrevious), existingTransition); 277 existingTransition->deref();278 272 } 279 273 structureID->m_transitions.table->add(make_pair(propertyName.ustring().rep(), attributes), transition.get());
Note:
See TracChangeset
for help on using the changeset viewer.