Changeset 154471 in webkit for trunk/Source/JavaScriptCore/runtime/JSObject.cpp
- Timestamp:
- Aug 22, 2013, 5:45:38 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r154459 r154471 547 547 } 548 548 549 DeferGC deferGC(vm.heap); 549 550 Butterfly* newButterfly = storage->butterfly()->resizeArray(vm, this, structure(), 0, ArrayStorage::sizeFor(0)); 550 551 RELEASE_ASSERT(newButterfly); … … 610 611 Butterfly* JSObject::createInitialUndecided(VM& vm, unsigned length) 611 612 { 613 DeferGC deferGC(vm.heap); 612 614 Butterfly* newButterfly = createInitialIndexedStorage(vm, length, sizeof(EncodedJSValue)); 613 615 Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), AllocateUndecided); … … 618 620 ContiguousJSValues JSObject::createInitialInt32(VM& vm, unsigned length) 619 621 { 622 DeferGC deferGC(vm.heap); 620 623 Butterfly* newButterfly = createInitialIndexedStorage(vm, length, sizeof(EncodedJSValue)); 621 624 Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), AllocateInt32); … … 626 629 ContiguousDoubles JSObject::createInitialDouble(VM& vm, unsigned length) 627 630 { 631 DeferGC deferGC(vm.heap); 628 632 Butterfly* newButterfly = createInitialIndexedStorage(vm, length, sizeof(double)); 629 633 for (unsigned i = newButterfly->vectorLength(); i--;) … … 636 640 ContiguousJSValues JSObject::createInitialContiguous(VM& vm, unsigned length) 637 641 { 642 DeferGC deferGC(vm.heap); 638 643 Butterfly* newButterfly = createInitialIndexedStorage(vm, length, sizeof(EncodedJSValue)); 639 644 Structure* newStructure = Structure::nonPropertyTransition(vm, structure(), AllocateContiguous); … … 644 649 ArrayStorage* JSObject::createArrayStorage(VM& vm, unsigned length, unsigned vectorLength) 645 650 { 651 DeferGC deferGC(vm.heap); 646 652 IndexingType oldType = structure()->indexingType(); 647 653 ASSERT_UNUSED(oldType, !hasIndexedProperties(oldType)); … … 718 724 ArrayStorage* JSObject::convertUndecidedToArrayStorage(VM& vm, NonPropertyTransition transition, unsigned neededLength) 719 725 { 726 DeferGC deferGC(vm.heap); 720 727 ASSERT(hasUndecided(structure()->indexingType())); 721 728 … … 770 777 ASSERT(hasInt32(structure()->indexingType())); 771 778 779 DeferGC deferGC(vm.heap); 772 780 ArrayStorage* newStorage = constructConvertedArrayStorageWithoutCopyingElements(vm, neededLength); 773 781 for (unsigned i = m_butterfly->publicLength(); i--;) { … … 836 844 ArrayStorage* JSObject::convertDoubleToArrayStorage(VM& vm, NonPropertyTransition transition, unsigned neededLength) 837 845 { 846 DeferGC deferGC(vm.heap); 838 847 ASSERT(hasDouble(structure()->indexingType())); 839 848 … … 864 873 ArrayStorage* JSObject::convertContiguousToArrayStorage(VM& vm, NonPropertyTransition transition, unsigned neededLength) 865 874 { 875 DeferGC deferGC(vm.heap); 866 876 ASSERT(hasContiguous(structure()->indexingType())); 867 877 … … 2311 2321 // Fast case - there is no precapacity. In these cases a realloc makes sense. 2312 2322 if (LIKELY(!indexBias)) { 2323 DeferGC deferGC(vm.heap); 2313 2324 Butterfly* newButterfly = storage->butterfly()->growArrayRight( 2314 2325 vm, this, structure(), structure()->outOfLineCapacity(), true, … … 2322 2333 2323 2334 // Remove some, but not all of the precapacity. Atomic decay, & capped to not overflow array length. 2335 DeferGC deferGC(vm.heap); 2324 2336 unsigned newIndexBias = std::min(indexBias >> 1, MAX_STORAGE_VECTOR_LENGTH - newVectorLength); 2325 2337 Butterfly* newButterfly = storage->butterfly()->resizeArray( … … 2346 2358 MAX_STORAGE_VECTOR_LENGTH); 2347 2359 unsigned oldVectorLength = m_butterfly->vectorLength(); 2360 DeferGC deferGC(vm.heap); 2348 2361 m_butterfly = m_butterfly->growArrayRight( 2349 2362 vm, this, structure(), structure()->outOfLineCapacity(), true,
Note:
See TracChangeset
for help on using the changeset viewer.