ladybird/Libraries/LibJS/Heap
Andreas Kling bd5abbc454 LibJS: Fix fatal mistake in HeapBlock::cell_from_possible_pointer()
When scanning for potential heap pointers during conservative GC,
we look for any value that is an address somewhere inside a heap cell.

However, we were failing to account for the slack at the end of a
block (which occurs whenever the block storage size isn't an exact
multiple of the cell size.) Pointers inside the trailing slack were
misidentified as pointers into "last_cell+1".

Instead of skipping over them, we would treat this garbage data as a
live cell and try to mark it. I believe this is the test-js crash that
has been terrorizing Travis for a while. :^)
2020-10-01 21:07:12 +02:00
..
DeferGC.h LibJS: Add DeferGC, a RAII way to prevent GC temporarily 2020-04-19 12:09:32 +02:00
Handle.cpp LibJS: Add missing copyright headers 2020-03-18 20:21:06 +01:00
Handle.h Meta+LibHTTP through LibWeb: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Heap.cpp LibJS: Assert if garbage collection is restarted while ongoing 2020-09-21 14:35:19 +02:00
Heap.h LibJS: Assert if garbage collection is restarted while ongoing 2020-09-21 14:35:19 +02:00
HeapBlock.cpp LibJS: Fix undefined behavior in HeapBlock 2020-06-01 17:37:44 +02:00
HeapBlock.h LibJS: Fix fatal mistake in HeapBlock::cell_from_possible_pointer() 2020-10-01 21:07:12 +02:00