• Russ Cox's avatar
    cmd/gc, runtime: treat slices and strings like pointers in garbage collection · 613383c7
    Russ Cox authored
    Before, a slice with cap=0 or a string with len=0 might have its
    base pointer pointing beyond the actual slice/string data into
    the next block. The collector had to ignore slices and strings with
    cap=0 in order to avoid misinterpreting the base pointer.
    
    Now, a slice with cap=0 or a string with len=0 still has a base
    pointer pointing into the actual slice/string data, no matter what.
    The collector can now always scan the pointer, which means
    strings and slices are no longer special.
    
    Fixes #8404.
    
    LGTM=khr, josharian
    R=josharian, khr, dvyukov
    CC=golang-codereviews
    https://golang.org/cl/112570044
    613383c7
Name
Last commit
Last update
..
Makefile Loading commit data...
align.c Loading commit data...
array.c Loading commit data...
bisonerrors Loading commit data...
bits.c Loading commit data...
builtin.c Loading commit data...
bv.c Loading commit data...
closure.c Loading commit data...
const.c Loading commit data...
cplx.c Loading commit data...
dcl.c Loading commit data...
doc.go Loading commit data...
esc.c Loading commit data...
export.c Loading commit data...
fmt.c Loading commit data...
gen.c Loading commit data...
go.errors Loading commit data...
go.h Loading commit data...
go.y Loading commit data...
init.c Loading commit data...
inl.c Loading commit data...
lex.c Loading commit data...
md5.c Loading commit data...
md5.h Loading commit data...
mkbuiltin Loading commit data...
mkbuiltin1.c Loading commit data...
mkopnames Loading commit data...
mparith1.c Loading commit data...
mparith2.c Loading commit data...
mparith3.c Loading commit data...
obj.c Loading commit data...
order.c Loading commit data...
pgen.c Loading commit data...
plive.c Loading commit data...
popt.c Loading commit data...
popt.h Loading commit data...
racewalk.c Loading commit data...
range.c Loading commit data...
reflect.c Loading commit data...
runtime.go Loading commit data...
select.c Loading commit data...
sinit.c Loading commit data...
subr.c Loading commit data...
swt.c Loading commit data...
typecheck.c Loading commit data...
unsafe.c Loading commit data...
unsafe.go Loading commit data...
walk.c Loading commit data...
y.tab.c Loading commit data...
y.tab.h Loading commit data...
yerr.h Loading commit data...