]> Cypherpunks repositories - gostls13.git/commit
reflect: use a bigger object when we need a finalizer to run
authorKeith Randall <khr@golang.org>
Wed, 8 Aug 2018 03:59:04 +0000 (20:59 -0700)
committerKeith Randall <khr@golang.org>
Fri, 24 Aug 2018 22:17:54 +0000 (22:17 +0000)
commit78ce3a0368279653d05cbd1003e801363caba75a
treeaeab1a4b260d293d43b88713da33a39ef4807e18
parent776298abdc59141c0828d44d9427ea73e92a0686
reflect: use a bigger object when we need a finalizer to run

If an object is allocated as part of a tinyalloc, then other live
objects in the same tinyalloc chunk keep the finalizer from being run,
even if the object that has the finalizer is dead.

Make sure the object we're setting the finalizer on is big enough
to not trigger tinyalloc allocation.

Fixes #26857
Update #21717

Change-Id: I56ad8679426283237ebff20a0da6c9cf64eb1c27
Reviewed-on: https://go-review.googlesource.com/128475
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/reflect/all_test.go