]> Cypherpunks repositories - gostls13.git/commitdiff
reflect: add comment about Type.Field allocation
authorRuss Cox <rsc@golang.org>
Fri, 27 Jan 2012 21:11:17 +0000 (16:11 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 27 Jan 2012 21:11:17 +0000 (16:11 -0500)
R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/5586044

src/pkg/reflect/type.go

index 15b32efe374858b77cfb1263a25eff56f38dc9b2..0acee9e4348acc8b07a1897b63075def93011719 100644 (file)
@@ -789,6 +789,14 @@ func (t *structType) Field(i int) (f StructField) {
                f.Tag = StructTag(*p.tag)
        }
        f.Offset = p.offset
+
+       // NOTE(rsc): This is the only allocation in the interface
+       // presented by a reflect.Type.  It would be nice to avoid,
+       // at least in the common cases, but we need to make sure
+       // that misbehaving clients of reflect cannot affect other
+       // uses of reflect.  One possibility is CL 5371098, but we
+       // postponed that ugliness until there is a demonstrated
+       // need for the performance.  This is issue 2320.
        f.Index = []int{i}
        return
 }