• Austin Clements's avatar
    runtime: weaken claim about SetFinalizer panicking · 99339dd4
    Austin Clements authored
    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/30137Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    99339dd4
mfinal.go 14.7 KB