]> Cypherpunks.ru repositories - gostls13.git/commitdiff
runtime: relax SetFinalizer documentation to allow &local
authorElias Naur <elias.naur@gmail.com>
Thu, 22 Sep 2016 07:37:28 +0000 (09:37 +0200)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 27 Sep 2016 16:38:47 +0000 (16:38 +0000)
The SetFinalizer documentation states that

"The argument obj must be a pointer to an object allocated by calling
new or by taking the address of a composite literal."

which precludes pointers to local variables. According to a comment
on #6591, this case is expected to work. This CL updates the documentation
for SetFinalizer accordingly.

Fixes #6591

Change-Id: Id861b3436bc1c9521361ea2d51c1ce74a121c1af
Reviewed-on: https://go-review.googlesource.com/29592
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/mfinal.go

index 9bad6f0aa37bc75354473745526823c6c43fbfc9..b3f30dd5ae20eccfdbd994069383a5b3b617a415 100644 (file)
@@ -226,8 +226,9 @@ func runfinq() {
 //
 // SetFinalizer(obj, nil) clears any finalizer associated with obj.
 //
-// The argument obj must be a pointer to an object allocated by
-// calling new or by taking the address of a composite literal.
+// The argument obj must be a pointer to an object allocated by calling
+// new, by taking the address of a composite literal, or by taking the
+// address of a local variable.
 // The argument finalizer must be a function that takes a single argument
 // to which obj's type can be assigned, and can have arbitrary ignored return
 // values. If either of these is not true, SetFinalizer aborts the