protobuf-go/reflect
Damien Neil e9187326c3 internal/filedesc: move message options to L1 initialization
Avoid a deadlock when registering a legacy ExtensionType, caused by
initialization of the "internal/impl".ExtensionInfo calling IsMessageSet
on the MessageDescriptor of the type being extended.

We can avoid this deadlock either by initializing the ExtensionType
outside of the GlobalTypes mutex, or by moving IsMessageSet to L1
initialization of the MessageDescriptor so that it doesn't trigger lazy
init.

CL 204804 takes the former approach; this CL takes the latter.

Change-Id: Idfc1ed36a23a139839290ea32492142a17f68cf5
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/205957
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
2019-11-08 00:29:25 +00:00
..
protodesc internal/filedesc: move message options to L1 initialization 2019-11-08 00:29:25 +00:00
protoreflect reflect/protoreflect: remove nullability from repeated extension fields 2019-11-05 18:31:30 +00:00
protoregistry reflect/protoregistry: add (*Types).Register{Message,Enum,Extension} 2019-10-31 16:23:42 +00:00