Changeset 242912 in webkit
- Timestamp:
- Mar 13, 2019 3:05:19 PM (5 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r242910 r242912 1 2019-03-13 Mark Lam <mark.lam@apple.com> 2 3 Remove unneeded --tradeDestructorBlocks option. 4 https://bugs.webkit.org/show_bug.cgi?id=195698 5 <rdar://problem/39681388> 6 7 Reviewed by Yusuke Suzuki. 8 9 There's no reason why we would ever want --tradeDestructorBlocks to be false. 10 11 Also, there was an assertion in BlockDirectory::endMarking() for when 12 (!Options::tradeDestructorBlocks() && needsDestruction()). This assertion is 13 outdated because the BlockDirectory's m_empty set used to mean the set of all 14 blocks that have no live (as in not reachable by GC) objects and dead objects 15 also do not require destructors to be called on them. The current meaning of 16 m_empty is that it is the set of all blocks that have no live objects, 17 independent of whether they needs destructors to be called on them or not. 18 The assertion is no longer valid for the new meaning of m_empty as m_empty may 19 now contain destructible blocks. This assertion is now removed as part of this 20 patch. 21 22 * heap/BlockDirectory.cpp: 23 (JSC::BlockDirectory::endMarking): 24 * heap/LocalAllocator.cpp: 25 (JSC::LocalAllocator::tryAllocateWithoutCollecting): 26 * runtime/Options.h: 27 1 28 2019-03-13 Dominik Infuehr <dinfuehr@igalia.com> 2 29 -
trunk/Source/JavaScriptCore/heap/BlockDirectory.cpp
r240216 r242912 1 1 /* 2 * Copyright (C) 2012-201 8Apple Inc. All rights reserved.2 * Copyright (C) 2012-2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 250 250 // vectors. 251 251 252 if (!Options::tradeDestructorBlocks() && needsDestruction()) { 253 ASSERT(m_empty.isEmpty()); 254 m_canAllocateButNotEmpty = m_live & ~m_markingRetired; 255 } else { 256 m_empty = m_live & ~m_markingNotEmpty; 257 m_canAllocateButNotEmpty = m_live & m_markingNotEmpty & ~m_markingRetired; 258 } 259 252 m_empty = m_live & ~m_markingNotEmpty; 253 m_canAllocateButNotEmpty = m_live & m_markingNotEmpty & ~m_markingRetired; 254 260 255 if (needsDestruction()) { 261 256 // There are some blocks that we didn't allocate out of in the last cycle, but we swept them. This -
trunk/Source/JavaScriptCore/heap/LocalAllocator.cpp
r240216 r242912 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 185 185 } 186 186 187 if (Options::stealEmptyBlocksFromOtherAllocators() 188 && (Options::tradeDestructorBlocks() || !m_directory->needsDestruction())) { 187 if (Options::stealEmptyBlocksFromOtherAllocators()) { 189 188 if (MarkedBlock::Handle* block = m_directory->m_subspace->findEmptyBlockToSteal()) { 190 189 RELEASE_ASSERT(block->alignedMemoryAllocator() == m_directory->m_subspace->alignedMemoryAllocator()); -
trunk/Source/JavaScriptCore/runtime/Options.h
r242123 r242912 1 1 /* 2 * Copyright (C) 2011-201 8Apple Inc. All rights reserved.2 * Copyright (C) 2011-2019 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 253 253 v(bool, useBumpAllocator, true, Normal, nullptr) \ 254 254 v(bool, stealEmptyBlocksFromOtherAllocators, true, Normal, nullptr) \ 255 v(bool, tradeDestructorBlocks, true, Normal, nullptr) \256 255 v(bool, eagerlyUpdateTopCallFrame, false, Normal, nullptr) \ 257 256 \
Note: See TracChangeset
for help on using the changeset viewer.