]> Cypherpunks repositories - gostls13.git/commit
runtime: weaken claim about SetFinalizer panicking
authorAustin Clements <austin@google.com>
Mon, 3 Oct 2016 15:52:20 +0000 (11:52 -0400)
committerAustin Clements <austin@google.com>
Mon, 3 Oct 2016 16:12:48 +0000 (16:12 +0000)
commit99339dd44537f82c9a1348b8937b68b6c61be005
treef45ae64fc77cd63517041d3e268becba5edad355
parent22a2bdfedb95612984cec3141924953b88a607b7
runtime: weaken claim about SetFinalizer panicking

Currently the SetFinalizer documentation makes a strong claim that
SetFinalizer will panic if the pointer is not to an object allocated
by calling new, to a composite literal, or to a local variable. This
is not true. For example, it doesn't panic when passed the address of
a package-level variable. Nor can we practically make it true. For
example, we can't distinguish between passing a pointer to a composite
literal and passing a pointer to its first field.

Hence, weaken the guarantee to say that it "may" panic.

Updates #17311. (Might fix it, depending on what we want to do with
package-level variables.)

Change-Id: I1c68ea9d0a5bbd3dd1b7ce329d92b0f05e2e0877
Reviewed-on: https://go-review.googlesource.com/30137
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/runtime/mfinal.go