vendor/github.com/golang/protobuf/proto/pointer_reflect.go
changeset 251 1c52a0eeb952
parent 242 2a9ec03fe5a1
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
    77 	return pointer{v: reflect.ValueOf(*i)}
    77 	return pointer{v: reflect.ValueOf(*i)}
    78 }
    78 }
    79 
    79 
    80 // toAddrPointer converts an interface to a pointer that points to
    80 // toAddrPointer converts an interface to a pointer that points to
    81 // the interface data.
    81 // the interface data.
    82 func toAddrPointer(i *interface{}, isptr bool) pointer {
    82 func toAddrPointer(i *interface{}, isptr, deref bool) pointer {
    83 	v := reflect.ValueOf(*i)
    83 	v := reflect.ValueOf(*i)
    84 	u := reflect.New(v.Type())
    84 	u := reflect.New(v.Type())
    85 	u.Elem().Set(v)
    85 	u.Elem().Set(v)
       
    86 	if deref {
       
    87 		u = u.Elem()
       
    88 	}
    86 	return pointer{v: u}
    89 	return pointer{v: u}
    87 }
    90 }
    88 
    91 
    89 // valToPointer converts v to a pointer.  v must be of pointer type.
    92 // valToPointer converts v to a pointer.  v must be of pointer type.
    90 func valToPointer(v reflect.Value) pointer {
    93 func valToPointer(v reflect.Value) pointer {