[Issue 11446] [GC] GC realloc doesn't ignore non-GC owned pointers

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Jan 4 02:57:00 UTC 2019


--- Comment #2 from github-bugzilla at puremagic.com ---
Commit pushed to master at https://github.com/dlang/druntime

fix Issue 11393,11446 - [GC] GC realloc and free don't ignore interior/non-GC
owned pointers

change specification of GC.realloc to something more robust:

- return null for failure (returning the original pointer is no indication of
failure as it might also be returned on success. This can easily lead to
overwriting memory)
- allow freeing old memory immediately (previous implementation did this for
large objects when shrinking)
- only set attribute bits on existing block if reused (previous implementation
didn't set bits if it reused a small block)

refactor realloc to match that spec, add changelog, fix example


More information about the Digitalmars-d-bugs mailing list