protobuf-go/internal/cmd
Damien Neil c5060d2fe6 reflect/protoreflect: add non-allocating Value constructors
Passing a non-pointer type to protoreflect.NewValue causes an
unnecessary allocation in order to store the value in an interface{}.
While this allocation could be avoided by a smarter compiler, no such
compiler exists today.

Add functions for creating new values of a specific type, avoiding the
allocation. (And also adding a small amount of type safety, although
this is unlikely to be important.)

Update the proto and internal/impl packages to use these functions.

Change-Id: Ic733de22ddf19c530189166c853348e1b54b7391
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/191457
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
2019-08-26 17:48:05 +00:00
..
generate-protos runtime/protoimpl, cmd/protoc-gen-go: support release versioning 2019-08-07 22:59:30 +00:00
generate-types reflect/protoreflect: add non-allocating Value constructors 2019-08-26 17:48:05 +00:00
pbdump proto: move T->*T wrappers from internal/scalar to proto 2019-07-12 17:35:01 +00:00