]> Cypherpunks.ru repositories - gostls13.git/commitdiff
reflect: deprecate SliceHeader and StringHeader
authorhopehook <hopehook.com@gmail.com>
Fri, 9 Sep 2022 00:43:10 +0000 (08:43 +0800)
committerGopher Robot <gobot@golang.org>
Fri, 9 Sep 2022 01:59:23 +0000 (01:59 +0000)
As discussed in CL 401434 there are substantial misuses of these in the
wild, and they are a potential source of unsafety even for code that
does not use them directly.

Since proposal #53003 has already been implemented, now is the right
time to deprecate reflect.{SliceHeader, StringHeader}.

For #53003.

Change-Id: I724cf46d4b22d2ed3cbf2b948e6aac5ee4bf0f6e
Reviewed-on: https://go-review.googlesource.com/c/go/+/428757
Run-TryBot: hopehook <hopehook@golangcn.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Matthew Dempsky <mdempsky@google.com>

src/reflect/value.go

index 6830057d6118822d07921d8331195f243d7a906a..917a5a69c9c488e6fe3119a65e8ca877d247f445 100644 (file)
@@ -2742,6 +2742,8 @@ func (v Value) UnsafePointer() unsafe.Pointer {
 // Moreover, the Data field is not sufficient to guarantee the data
 // it references will not be garbage collected, so programs must keep
 // a separate, correctly typed pointer to the underlying data.
+//
+// Deprecated: Use unsafe.String or unsafe.StringData instead.
 type StringHeader struct {
        Data uintptr
        Len  int
@@ -2753,6 +2755,8 @@ type StringHeader struct {
 // Moreover, the Data field is not sufficient to guarantee the data
 // it references will not be garbage collected, so programs must keep
 // a separate, correctly typed pointer to the underlying data.
+//
+// Deprecated: Use unsafe.Slice or unsafe.SliceData instead.
 type SliceHeader struct {
        Data uintptr
        Len  int