@@ -21,15 +21,19 @@ $root.Test = (function() {
2121 Test . prototype . inner = null ;
2222 Test . prototype . float = 0 ;
2323
24- Test . encode = function encode ( message , writer ) {
24+ Test . encode = function encode ( message , writer , q ) {
2525 if ( ! writer )
2626 writer = $Writer . create ( ) ;
27+ if ( q === undefined )
28+ q = 0 ;
29+ if ( q > $util . recursionLimit )
30+ throw Error ( "max depth exceeded" ) ;
2731 if ( message . string != null && Object . hasOwnProperty . call ( message , "string" ) )
2832 writer . uint32 ( 10 ) . string ( message . string ) ;
2933 if ( message . uint32 != null && Object . hasOwnProperty . call ( message , "uint32" ) )
3034 writer . uint32 ( 16 ) . uint32 ( message . uint32 ) ;
3135 if ( message . inner != null && Object . hasOwnProperty . call ( message , "inner" ) )
32- $root . Test . Inner . encode ( message . inner , writer . uint32 ( 26 ) . fork ( ) ) . ldelim ( ) ;
36+ $root . Test . Inner . encode ( message . inner , writer . uint32 ( 26 ) . fork ( ) , q + 1 ) . ldelim ( ) ;
3337 if ( message . float != null && Object . hasOwnProperty . call ( message , "float" ) )
3438 writer . uint32 ( 37 ) . float ( message . float ) ;
3539 return writer ;
@@ -85,15 +89,19 @@ $root.Test = (function() {
8589 Inner . prototype . innerInner = null ;
8690 Inner . prototype . outer = null ;
8791
88- Inner . encode = function encode ( message , writer ) {
92+ Inner . encode = function encode ( message , writer , q ) {
8993 if ( ! writer )
9094 writer = $Writer . create ( ) ;
95+ if ( q === undefined )
96+ q = 0 ;
97+ if ( q > $util . recursionLimit )
98+ throw Error ( "max depth exceeded" ) ;
9199 if ( message . int32 != null && Object . hasOwnProperty . call ( message , "int32" ) )
92100 writer . uint32 ( 8 ) . int32 ( message . int32 ) ;
93101 if ( message . innerInner != null && Object . hasOwnProperty . call ( message , "innerInner" ) )
94- $root . Test . Inner . InnerInner . encode ( message . innerInner , writer . uint32 ( 18 ) . fork ( ) ) . ldelim ( ) ;
102+ $root . Test . Inner . InnerInner . encode ( message . innerInner , writer . uint32 ( 18 ) . fork ( ) , q + 1 ) . ldelim ( ) ;
95103 if ( message . outer != null && Object . hasOwnProperty . call ( message , "outer" ) )
96- $root . Outer . encode ( message . outer , writer . uint32 ( 26 ) . fork ( ) ) . ldelim ( ) ;
104+ $root . Outer . encode ( message . outer , writer . uint32 ( 26 ) . fork ( ) , q + 1 ) . ldelim ( ) ;
97105 return writer ;
98106 } ;
99107
@@ -143,9 +151,13 @@ $root.Test = (function() {
143151 InnerInner . prototype [ "enum" ] = 0 ;
144152 InnerInner . prototype . sint32 = 0 ;
145153
146- InnerInner . encode = function encode ( message , writer ) {
154+ InnerInner . encode = function encode ( message , writer , q ) {
147155 if ( ! writer )
148156 writer = $Writer . create ( ) ;
157+ if ( q === undefined )
158+ q = 0 ;
159+ if ( q > $util . recursionLimit )
160+ throw Error ( "max depth exceeded" ) ;
149161 if ( message . long != null && Object . hasOwnProperty . call ( message , "long" ) )
150162 writer . uint32 ( 8 ) . int64 ( message . long ) ;
151163 if ( message [ "enum" ] != null && Object . hasOwnProperty . call ( message , "enum" ) )
@@ -220,9 +232,13 @@ $root.Outer = (function() {
220232 Outer . prototype . bool = $util . emptyArray ;
221233 Outer . prototype . double = 0 ;
222234
223- Outer . encode = function encode ( message , writer ) {
235+ Outer . encode = function encode ( message , writer , q ) {
224236 if ( ! writer )
225237 writer = $Writer . create ( ) ;
238+ if ( q === undefined )
239+ q = 0 ;
240+ if ( q > $util . recursionLimit )
241+ throw Error ( "max depth exceeded" ) ;
226242 if ( message . bool != null && message . bool . length ) {
227243 writer . uint32 ( 10 ) . fork ( ) ;
228244 for ( var i = 0 ; i < message . bool . length ; ++ i )
0 commit comments