Changeset 161230 in webkit for trunk/Source/JavaScriptCore/runtime/JSObject.cpp
- Timestamp:
- Jan 2, 2014, 2:57:14 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r161220 r161230 160 160 } 161 161 162 m_butterfly = newButterfly;162 m_butterfly.setWithoutWriteBarrier(newButterfly); 163 163 visitor.didCopy(butterfly->base(preCapacity, propertyCapacity), capacityInBytes); 164 164 } … … 284 284 case ALL_INT32_INDEXING_TYPES: 285 285 case ALL_CONTIGUOUS_INDEXING_TYPES: { 286 Butterfly* butterfly = thisObject-> m_butterfly;286 Butterfly* butterfly = thisObject->butterfly(); 287 287 if (i >= butterfly->vectorLength()) 288 288 return false; … … 298 298 299 299 case ALL_DOUBLE_INDEXING_TYPES: { 300 Butterfly* butterfly = thisObject-> m_butterfly;300 Butterfly* butterfly = thisObject->butterfly(); 301 301 if (i >= butterfly->vectorLength()) 302 302 return false; … … 438 438 439 439 case ALL_CONTIGUOUS_INDEXING_TYPES: { 440 Butterfly* butterfly = thisObject-> m_butterfly;440 Butterfly* butterfly = thisObject->butterfly(); 441 441 if (propertyName >= butterfly->vectorLength()) 442 442 break; … … 461 461 return; 462 462 } 463 Butterfly* butterfly = thisObject-> m_butterfly;463 Butterfly* butterfly = thisObject->butterfly(); 464 464 if (propertyName >= butterfly->vectorLength()) 465 465 break; … … 550 550 Butterfly* newButterfly = storage->butterfly()->resizeArray(vm, this, structure(), 0, ArrayStorage::sizeFor(0)); 551 551 RELEASE_ASSERT(newButterfly); 552 553 m_butterfly = newButterfly;554 552 newButterfly->arrayStorage()->m_indexBias = 0; 555 553 newButterfly->arrayStorage()->setVectorLength(0); 556 554 newButterfly->arrayStorage()->m_sparseMap.set(vm, this, map); 555 setButterflyWithoutChangingStructure(vm, newButterfly); 557 556 558 557 return newButterfly->arrayStorage(); … … 602 601 unsigned vectorLength = std::max(length, BASE_VECTOR_LEN); 603 602 Butterfly* newButterfly = Butterfly::createOrGrowArrayRight( 604 m_butterfly , vm, this, structure(), structure()->outOfLineCapacity(), false, 0,603 m_butterfly.get(), vm, this, structure(), structure()->outOfLineCapacity(), false, 0, 605 604 elementSize * vectorLength); 606 605 newButterfly->setPublicLength(length); … … 653 652 ASSERT_UNUSED(oldType, !hasIndexedProperties(oldType)); 654 653 Butterfly* newButterfly = Butterfly::createOrGrowArrayRight( 655 m_butterfly , vm, this, structure(), structure()->outOfLineCapacity(), false, 0,654 m_butterfly.get(), vm, this, structure(), structure()->outOfLineCapacity(), false, 0, 656 655 ArrayStorage::sizeFor(vectorLength)); 657 656 RELEASE_ASSERT(newButterfly); … … 1297 1296 case ALL_INT32_INDEXING_TYPES: 1298 1297 case ALL_CONTIGUOUS_INDEXING_TYPES: { 1299 Butterfly* butterfly = thisObject-> m_butterfly;1298 Butterfly* butterfly = thisObject->butterfly(); 1300 1299 if (i >= butterfly->vectorLength()) 1301 1300 return true; … … 1305 1304 1306 1305 case ALL_DOUBLE_INDEXING_TYPES: { 1307 Butterfly* butterfly = thisObject-> m_butterfly;1306 Butterfly* butterfly = thisObject->butterfly(); 1308 1307 if (i >= butterfly->vectorLength()) 1309 1308 return true; … … 1481 1480 case ALL_INT32_INDEXING_TYPES: 1482 1481 case ALL_CONTIGUOUS_INDEXING_TYPES: { 1483 Butterfly* butterfly = object-> m_butterfly;1482 Butterfly* butterfly = object->butterfly(); 1484 1483 unsigned usedLength = butterfly->publicLength(); 1485 1484 for (unsigned i = 0; i < usedLength; ++i) { … … 1492 1491 1493 1492 case ALL_DOUBLE_INDEXING_TYPES: { 1494 Butterfly* butterfly = object-> m_butterfly;1493 Butterfly* butterfly = object->butterfly(); 1495 1494 unsigned usedLength = butterfly->publicLength(); 1496 1495 for (unsigned i = 0; i < usedLength; ++i) { … … 1876 1875 if (i >= MAX_ARRAY_INDEX - 1 1877 1876 || (i >= MIN_SPARSE_ARRAY_INDEX 1878 && !isDenseEnoughForVector(i, countElements<indexingShape>( m_butterfly)))1877 && !isDenseEnoughForVector(i, countElements<indexingShape>(butterfly()))) 1879 1878 || indexIsSufficientlyBeyondLengthForSparseMap(i, m_butterfly->vectorLength())) { 1880 1879 ASSERT(i <= MAX_ARRAY_INDEX); … … 2313 2312 2314 2313 case ALL_INT32_INDEXING_TYPES: 2315 return countElements<Int32Shape>( m_butterfly);2314 return countElements<Int32Shape>(butterfly()); 2316 2315 2317 2316 case ALL_DOUBLE_INDEXING_TYPES: 2318 return countElements<DoubleShape>( m_butterfly);2317 return countElements<DoubleShape>(butterfly()); 2319 2318 2320 2319 case ALL_CONTIGUOUS_INDEXING_TYPES: 2321 return countElements<ContiguousShape>( m_butterfly);2320 return countElements<ContiguousShape>(butterfly()); 2322 2321 2323 2322 default: … … 2353 2352 if (!newButterfly) 2354 2353 return false; 2355 m_butterfly = newButterfly;2356 2354 newButterfly->arrayStorage()->setVectorLength(newVectorLength); 2355 setButterflyWithoutChangingStructure(vm, newButterfly); 2357 2356 return true; 2358 2357 } … … 2367 2366 if (!newButterfly) 2368 2367 return false; 2369 2370 m_butterfly = newButterfly;2371 2368 newButterfly->arrayStorage()->setVectorLength(newVectorLength); 2372 2369 newButterfly->arrayStorage()->m_indexBias = newIndexBias; 2370 setButterflyWithoutChangingStructure(vm, newButterfly); 2373 2371 return true; 2374 2372 } … … 2385 2383 unsigned oldVectorLength = m_butterfly->vectorLength(); 2386 2384 DeferGC deferGC(vm.heap); 2387 m_butterfly =m_butterfly->growArrayRight(2385 m_butterfly.set(vm, this, m_butterfly->growArrayRight( 2388 2386 vm, this, structure(), structure()->outOfLineCapacity(), true, 2389 2387 oldVectorLength * sizeof(EncodedJSValue), 2390 newVectorLength * sizeof(EncodedJSValue)); 2388 newVectorLength * sizeof(EncodedJSValue))); 2389 2390 m_butterfly->setVectorLength(newVectorLength); 2391 2391 2392 if (hasDouble(structure()->indexingType())) { 2392 2393 for (unsigned i = oldVectorLength; i < newVectorLength; ++i) 2393 2394 m_butterfly->contiguousDouble().data()[i] = QNaN; 2394 2395 } 2395 m_butterfly->setVectorLength(newVectorLength);2396 2396 } 2397 2397
Note:
See TracChangeset
for help on using the changeset viewer.