@@ -76,18 +76,18 @@ export class BinaryStylesheet {
7676 private readonly _types : Map < string , DataType > = new Map ( ) ;
7777 public readonly raw : Map < string , unknown > = new Map ( ) ;
7878
79- public constructor ( data ?: Uint8Array ) {
79+ public constructor ( data ?: Uint8Array , maxDecodingBufferSize : number = 0 ) {
8080 if ( data ) {
81- this . _read ( data ) ;
81+ this . _read ( data , maxDecodingBufferSize ) ;
8282 }
8383 }
8484
85- private _read ( data : Uint8Array ) {
85+ private _read ( data : Uint8Array , maxDecodingBufferSize : number ) {
8686 // BinaryStylesheet apears to be big-endien
8787 const readable : ByteBuffer = ByteBuffer . fromBuffer ( data ) ;
8888 const entryCount : number = IOHelper . readInt32BE ( readable ) ;
8989 for ( let i : number = 0 ; i < entryCount ; i ++ ) {
90- const key : string = GpBinaryHelpers . gpReadString ( readable , readable . readByte ( ) , 'utf-8' ) ;
90+ const key : string = GpBinaryHelpers . gpReadString ( readable , readable . readByte ( ) , 'utf-8' , maxDecodingBufferSize ) ;
9191 const type : DataType = readable . readByte ( ) as DataType ;
9292 this . _types . set ( key , type ) ;
9393 switch ( type ) {
@@ -104,7 +104,7 @@ export class BinaryStylesheet {
104104 this . addValue ( key , fvalue ) ;
105105 break ;
106106 case DataType . String :
107- const s : string = GpBinaryHelpers . gpReadString ( readable , IOHelper . readInt16BE ( readable ) , 'utf-8' ) ;
107+ const s : string = GpBinaryHelpers . gpReadString ( readable , IOHelper . readInt16BE ( readable ) , 'utf-8' , maxDecodingBufferSize ) ;
108108 this . addValue ( key , s ) ;
109109 break ;
110110 case DataType . Point :
0 commit comments