runtime: clean up and improve reflect.methodValue comments

The runtime no longer hard-codes the offset of
reflect.methodValue.stack, so remove these obsolete comments. Also,
reflect.methodValue and runtime.reflectMethodValue must also agree
with reflect.makeFuncImpl, so update the comments on all three to
mention this.

This was pointed out by Minux on CL 31138.

Change-Id: Ic5ed1beffb65db76aca2977958da35de902e8e58
Reviewed-on: https://go-review.googlesource.com/34590
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Austin Clements 2016-12-16 11:57:25 -05:00
parent 8d21691044
commit ddd558e7e4
2 changed files with 10 additions and 5 deletions

View file

@ -12,9 +12,12 @@ import (
// makeFuncImpl is the closure value implementing the function
// returned by MakeFunc.
// The first two words of this type must be kept in sync with
// methodValue and runtime.reflectMethodValue.
// Any changes should be reflected in all three.
type makeFuncImpl struct {
code uintptr
stack *bitVector // stack bitmap for args - offset known to runtime
stack *bitVector
typ *funcType
fn func([]Value) []Value
}
@ -70,11 +73,12 @@ func MakeFunc(typ Type, fn func(args []Value) (results []Value)) Value {
// word in the passed-in argument frame.
func makeFuncStub()
// This type is partially duplicated as runtime.reflectMethodValue.
// Any changes should be reflected in both.
// The first two words of this type must be kept in sync with
// makeFuncImpl and runtime.reflectMethodValue.
// Any changes should be reflected in all three.
type methodValue struct {
fn uintptr
stack *bitVector // stack bitmap for args - offset known to runtime
stack *bitVector
method int
rcvr Value
}

View file

@ -546,7 +546,8 @@ func gentraceback(pc0, sp0, lr0 uintptr, gp *g, skip int, pcbuf *uintptr, max in
return n
}
// reflectMethodValue is a partial duplicate of reflect.methodValue.
// reflectMethodValue is a partial duplicate of reflect.makeFuncImpl
// and reflect.methodValue.
type reflectMethodValue struct {
fn uintptr
stack *bitvector // args bitmap