| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
It has been discovered that AddressSanitizer does not keep a 1:1 mapping
of which bytes are poisoned and which are not. This can cause issues for
allocations less than 8 bytes and where addresses straddle 8-byte
boundaries.
See the following link for more information:
https://github.com/google/sanitizers/wiki/AddressSanitizerAlgorithm#mapping
|
| | |
|
| |
|
|
| |
source of truth
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This affects `runtime.Arena` and `virtual.Arena`, but not currently
`mem.Arena`. These changes allow the last allocation that has been
made to be resized to a larger size by just extending their
allocation in-place, when there's sufficient room in the memory block to
do so.
Shrinking in place and re-using the rest of the allocation can be
supported using almost the same logic, but would require the memory to
be zeroed. Since this would add a additional cost that isn't currently
present, shrinking has not been changed.
|
| |
|
|
| |
Fix: total_used field of growing Arena was not decremented correctly in arena_temp_end;
|
| | |
|
|
|
the default temp allocator. This is done by renaming the file in which it lives, and also by improving the comment above `Arena :: struct {`. This should avoid some confusion where people end up using the Arena in base:runtime because they thought it was the 'default arena'.
|