Ignore:
Timestamp:
Jan 10, 2018, 11:41:12 AM (8 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r226667 and r226673.
https://bugs.webkit.org/show_bug.cgi?id=181488

This caused a flaky crash. (Requested by mlewis13 on #webkit).

Reverted changesets:

"CodeBlocks should be in IsoSubspaces"
https://bugs.webkit.org/show_bug.cgi?id=180884
https://trac.webkit.org/changeset/226667

"REGRESSION (r226667): CodeBlocks should be in IsoSubspaces"
https://bugs.webkit.org/show_bug.cgi?id=180884
https://trac.webkit.org/changeset/226673

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/heap/HeapUtil.h

    r226667 r226725  
    6767                    [] (LargeAllocation** ptr) -> LargeAllocation* { return *ptr; });
    6868                if (result) {
    69                     auto attemptLarge = [&] (LargeAllocation* allocation) {
    70                         if (allocation->contains(pointer))
    71                             func(allocation->cell(), allocation->attributes().cellKind);
    72                     };
    73                    
    74                     if (result > heap.objectSpace().largeAllocationsForThisCollectionBegin())
    75                         attemptLarge(result[-1]);
    76                     attemptLarge(result[0]);
    77                     if (result + 1 < heap.objectSpace().largeAllocationsForThisCollectionEnd())
    78                         attemptLarge(result[1]);
     69                    if (result > heap.objectSpace().largeAllocationsForThisCollectionBegin()
     70                        && result[-1]->contains(pointer))
     71                        func(result[-1]->cell());
     72                    if (result[0]->contains(pointer))
     73                        func(result[0]->cell());
     74                    if (result + 1 < heap.objectSpace().largeAllocationsForThisCollectionEnd()
     75                        && result[1]->contains(pointer))
     76                        func(result[1]->cell());
    7977                }
    8078            }
     
    9290                previousPointer = static_cast<char*>(previousCandidate->handle().cellAlign(previousPointer));
    9391                if (previousCandidate->handle().isLiveCell(markingVersion, newlyAllocatedVersion, isMarking, previousPointer))
    94                     func(previousPointer, previousCandidate->handle().cellKind());
     92                    func(previousPointer);
    9593            }
    9694        }
     
    103101        if (!set.contains(candidate))
    104102            return;
    105 
    106         HeapCell::Kind cellKind = candidate->handle().cellKind();
    107103       
    108104        auto tryPointer = [&] (void* pointer) {
    109105            if (candidate->handle().isLiveCell(markingVersion, newlyAllocatedVersion, isMarking, pointer))
    110                 func(pointer, cellKind);
     106                func(pointer);
    111107        };
    112108   
Note: See TracChangeset for help on using the changeset viewer.