@@ -48,14 +48,32 @@ internal ExtensionCollection(FileDescriptor file, Extension[] extensions)
4848 {
4949 UnorderedExtensions = DescriptorUtil . ConvertAndMakeReadOnly (
5050 file . Proto . Extension ,
51- ( extension , i ) => new FieldDescriptor ( extension , file , null , i , null , extensions ? [ i ] ) ) ;
51+ ( extension , i ) => {
52+ if ( extensions ? . Length != 0 )
53+ {
54+ return new FieldDescriptor ( extension , file , null , i , null , extensions ? [ i ] ) ;
55+ }
56+ else
57+ {
58+ return new FieldDescriptor ( extension , file , null , i , null , null ) ; // return null if there's no extensions in this array for old code-gen
59+ }
60+ } ) ;
5261 }
5362
5463 internal ExtensionCollection ( MessageDescriptor message , Extension [ ] extensions )
5564 {
5665 UnorderedExtensions = DescriptorUtil . ConvertAndMakeReadOnly (
5766 message . Proto . Extension ,
58- ( extension , i ) => new FieldDescriptor ( extension , message . File , message , i , null , extensions ? [ i ] ) ) ;
67+ ( extension , i ) => {
68+ if ( extensions ? . Length != 0 )
69+ {
70+ return new FieldDescriptor ( extension , message . File , message , i , null , extensions ? [ i ] ) ;
71+ }
72+ else
73+ {
74+ return new FieldDescriptor ( extension , message . File , message , i , null , null ) ;
75+ }
76+ } ) ;
5977 }
6078
6179 /// <summary>
0 commit comments