@@ -263,7 +263,7 @@ func (d *D) TryCopyBits(w io.Writer, r bitio.Reader) (int64, error) {
263263func (d * D ) CopyBits (w io.Writer , r bitio.Reader ) int64 {
264264 n , err := d .TryCopyBits (w , r )
265265 if err != nil {
266- d .IOPanic (err , "CopyBits: Copy " )
266+ d .IOPanic (err , "" , "CopyBits " )
267267 }
268268 return n
269269}
@@ -277,15 +277,15 @@ func (d *D) TryCopy(w io.Writer, r io.Reader) (int64, error) {
277277func (d * D ) Copy (w io.Writer , r io.Reader ) int64 {
278278 n , err := d .TryCopy (w , r )
279279 if err != nil {
280- d .IOPanic (err , "Copy" )
280+ d .IOPanic (err , "" , " Copy" )
281281 }
282282 return n
283283}
284284
285285func (d * D ) CloneReadSeeker (br bitio.ReadSeeker ) bitio.ReadSeeker {
286286 br , err := bitio .CloneReadSeeker (br )
287287 if err != nil {
288- d .IOPanic (err , "CloneReadSeeker" )
288+ d .IOPanic (err , "" , " CloneReadSeeker" )
289289 }
290290 return br
291291}
@@ -308,7 +308,7 @@ func (d *D) TryReadAllBits(r bitio.Reader) ([]byte, error) {
308308func (d * D ) ReadAllBits (r bitio.Reader ) []byte {
309309 buf , err := d .TryReadAllBits (r )
310310 if err != nil {
311- d .IOPanic (err , "Bytes ReadAllBytes" )
311+ d .IOPanic (err , "" , " ReadAllBytes" )
312312 }
313313 return buf
314314}
@@ -350,7 +350,7 @@ func (d *D) FillGaps(r ranges.Range, namePrefix string) {
350350 for i , gap := range gaps {
351351 br , err := bitiox .Range (d .bitBuf , gap .Start , gap .Len )
352352 if err != nil {
353- d .IOPanic (err , "FillGaps: Range" )
353+ d .IOPanic (err , namePrefix , "bitiox. Range" )
354354 }
355355
356356 v := & Value {
@@ -380,8 +380,8 @@ func (d *D) Fatalf(format string, a ...any) {
380380 panic (DecoderError {Reason : fmt .Sprintf (format , a ... ), Pos : d .Pos ()})
381381}
382382
383- func (d * D ) IOPanic (err error , op string ) {
384- panic (IOError {Err : err , Pos : d .Pos (), Op : op })
383+ func (d * D ) IOPanic (err error , name string , op string ) {
384+ panic (IOError {Err : err , Name : name , Pos : d .Pos (), Op : op })
385385}
386386
387387// TryBits reads nBits bits from buffer
@@ -543,7 +543,7 @@ func (d *D) TryPeekFind(nBits int, seekBits int64, maxLen int64, fn func(v uint6
543543func (d * D ) PeekFind (nBits int , seekBits int64 , maxLen int64 , fn func (v uint64 ) bool ) (int64 , uint64 ) {
544544 peekBits , v , err := d .TryPeekFind (nBits , seekBits , maxLen , fn )
545545 if err != nil {
546- d .IOPanic (err , "PeekFind: TryPeekFind " )
546+ d .IOPanic (err , "" , "PeekFind " )
547547 }
548548 if peekBits == - 1 {
549549 d .Errorf ("peek not found" )
@@ -771,7 +771,7 @@ func (d *D) TrySeekRel(delta int64, fns ...func(d *D)) (int64, error) {
771771func (d * D ) SeekRel (delta int64 , fns ... func (d * D )) int64 {
772772 n , err := d .trySeekAbs (d .Pos ()+ delta , fns ... )
773773 if err != nil {
774- d .IOPanic (err , "SeekRel" )
774+ d .IOPanic (err , "" , " SeekRel" )
775775 }
776776 return n
777777}
@@ -785,7 +785,7 @@ func (d *D) TrySeekAbs(pos int64, fns ...func(d *D)) (int64, error) {
785785func (d * D ) SeekAbs (pos int64 , fns ... func (d * D )) int64 {
786786 n , err := d .trySeekAbs (pos , fns ... )
787787 if err != nil {
788- d .IOPanic (err , "SeekAbs" )
788+ d .IOPanic (err , "" , " SeekAbs" )
789789 }
790790 return n
791791}
@@ -955,7 +955,7 @@ func (d *D) RangeFn(firstBit int64, nBits int64, fn func(d *D)) int64 {
955955 // TODO: do some kind of DecodeLimitedLen/RangeFn?
956956 br := d .BitBufRange (0 , firstBit + nBits )
957957 if _ , err := br .SeekBits (firstBit , io .SeekStart ); err != nil {
958- d .IOPanic (err , "RangeFn: SeekAbs" )
958+ d .IOPanic (err , "" , " RangeFn: SeekAbs" )
959959 }
960960
961961 nd := * d
@@ -979,7 +979,7 @@ func (d *D) Format(group *Group, inArg any) any {
979979 ReadBuf : d .readBuf ,
980980 })
981981 if dv == nil || dv .Errors () != nil {
982- d .IOPanic (err , "Format: decode" )
982+ d .IOPanic (err , "" , " Format: decode" )
983983 }
984984
985985 switch vv := dv .V .(type ) {
@@ -992,7 +992,7 @@ func (d *D) Format(group *Group, inArg any) any {
992992 }
993993
994994 if _ , err := d .bitBuf .SeekBits (dv .Range .Len , io .SeekCurrent ); err != nil {
995- d .IOPanic (err , "Format: SeekRel" )
995+ d .IOPanic (err , "" , " Format: SeekRel" )
996996 }
997997
998998 return v
@@ -1015,7 +1015,7 @@ func (d *D) TryFieldFormat(name string, group *Group, inArg any) (*Value, any, e
10151015
10161016 d .AddChild (dv )
10171017 if _ , err := d .bitBuf .SeekBits (dv .Range .Len , io .SeekCurrent ); err != nil {
1018- d .IOPanic (err , "TryFieldFormat: SeekRel" )
1018+ d .IOPanic (err , name , "TryFieldFormat: SeekRel" )
10191019 }
10201020
10211021 return dv , v , err
@@ -1024,7 +1024,7 @@ func (d *D) TryFieldFormat(name string, group *Group, inArg any) (*Value, any, e
10241024func (d * D ) FieldFormat (name string , group * Group , inArg any ) (* Value , any ) {
10251025 dv , v , err := d .TryFieldFormat (name , group , inArg )
10261026 if dv == nil || dv .Errors () != nil {
1027- d .IOPanic (err , "FieldFormat: TryFieldFormat" )
1027+ d .IOPanic (err , name , "FieldFormat: TryFieldFormat" )
10281028 }
10291029 return dv , v
10301030}
@@ -1054,7 +1054,7 @@ func (d *D) TryFieldFormatLen(name string, nBits int64, group *Group, inArg any)
10541054
10551055 d .AddChild (dv )
10561056 if _ , err := d .bitBuf .SeekBits (nBits , io .SeekCurrent ); err != nil {
1057- d .IOPanic (err , "TryFieldFormatLen: SeekRel" )
1057+ d .IOPanic (err , name , "TryFieldFormatLen: SeekRel" )
10581058 }
10591059
10601060 return dv , v , err
@@ -1063,7 +1063,7 @@ func (d *D) TryFieldFormatLen(name string, nBits int64, group *Group, inArg any)
10631063func (d * D ) FieldFormatLen (name string , nBits int64 , group * Group , inArg any ) (* Value , any ) {
10641064 dv , v , err := d .TryFieldFormatLen (name , nBits , group , inArg )
10651065 if dv == nil || dv .Errors () != nil {
1066- d .IOPanic (err , "FieldFormatLen: TryFieldFormatLen" )
1066+ d .IOPanic (err , name , "FieldFormatLen: TryFieldFormatLen" )
10671067 }
10681068 return dv , v
10691069}
@@ -1100,7 +1100,7 @@ func (d *D) TryFieldFormatRange(name string, firstBit int64, nBits int64, group
11001100func (d * D ) FieldFormatRange (name string , firstBit int64 , nBits int64 , group * Group , inArg any ) (* Value , any ) {
11011101 dv , v , err := d .TryFieldFormatRange (name , firstBit , nBits , group , inArg )
11021102 if dv == nil || dv .Errors () != nil {
1103- d .IOPanic (err , "FieldFormatRange: TryFieldFormatRange" )
1103+ d .IOPanic (err , name , "FieldFormatRange: TryFieldFormatRange" )
11041104 }
11051105
11061106 return dv , v
@@ -1130,7 +1130,7 @@ func (d *D) TryFieldFormatBitBuf(name string, br bitio.ReaderAtSeeker, group *Gr
11301130func (d * D ) FieldFormatBitBuf (name string , br bitio.ReaderAtSeeker , group * Group , inArg any ) (* Value , any ) {
11311131 dv , v , err := d .TryFieldFormatBitBuf (name , br , group , inArg )
11321132 if dv == nil || dv .Errors () != nil {
1133- d .IOPanic (err , "FieldFormatBitBuf: TryFieldFormatBitBuf" )
1133+ d .IOPanic (err , name , "FieldFormatBitBuf: TryFieldFormatBitBuf" )
11341134 }
11351135
11361136 return dv , v
@@ -1141,7 +1141,7 @@ func (d *D) FieldFormatBitBuf(name string, br bitio.ReaderAtSeeker, group *Group
11411141func (d * D ) FieldRootBitBuf (name string , br bitio.ReaderAtSeeker , sms ... scalar.BitBufMapper ) * Value {
11421142 brLen , err := bitiox .Len (br )
11431143 if err != nil {
1144- d .IOPanic (err , "br Len" )
1144+ d .IOPanic (err , name , "br Len" )
11451145 }
11461146
11471147 v := & Value {}
@@ -1188,17 +1188,17 @@ func (d *D) FieldStructRootBitBufFn(name string, br bitio.ReaderAtSeeker, fn fun
11881188func (d * D ) FieldFormatReaderLen (name string , nBits int64 , fn func (r io.Reader ) (io.ReadCloser , error ), group * Group ) (* Value , any ) {
11891189 br , err := d .TryBitBufLen (nBits )
11901190 if err != nil {
1191- d .IOPanic (err , "FieldFormatReaderLen: BitBufLen" )
1191+ d .IOPanic (err , name , "FieldFormatReaderLen: BitBufLen" )
11921192 }
11931193
11941194 bbBR := bitio .NewIOReader (br )
11951195 r , err := fn (bbBR )
11961196 if err != nil {
1197- d .IOPanic (err , "FieldFormatReaderLen: fn" )
1197+ d .IOPanic (err , name , "FieldFormatReaderLen: fn" )
11981198 }
11991199 rBuf , err := io .ReadAll (r )
12001200 if err != nil {
1201- d .IOPanic (err , "FieldFormatReaderLen: ReadAll" )
1201+ d .IOPanic (err , name , "FieldFormatReaderLen: ReadAll" )
12021202 }
12031203 rBR := bitio .NewBitReader (rBuf , - 1 )
12041204
@@ -1245,7 +1245,7 @@ func (d *D) FieldReaderRange(name string, startBit int64, nBits int64, fn func(r
12451245func (d * D ) FieldReaderRangeFormat (name string , startBit int64 , nBits int64 , fn func (r io.Reader ) io.Reader , group * Group , inArg any ) (int64 , bitio.ReaderAtSeeker , * Value , any ) {
12461246 cz , rBR , dv , v , err := d .TryFieldReaderRangeFormat (name , startBit , nBits , fn , group , inArg )
12471247 if err != nil {
1248- d .IOPanic (err , "TryFieldReaderRangeFormat" )
1248+ d .IOPanic (err , name , "TryFieldReaderRangeFormat" )
12491249 }
12501250 return cz , rBR , dv , v
12511251}
@@ -1268,7 +1268,7 @@ func (d *D) TryFieldValue(name string, fn func() (*Value, error)) (*Value, error
12681268func (d * D ) FieldValue (name string , fn func () * Value ) * Value {
12691269 v , err := d .TryFieldValue (name , func () (* Value , error ) { return fn (), nil })
12701270 if err != nil {
1271- d .IOPanic (err , "FieldValue: TryFieldValue" )
1271+ d .IOPanic (err , name , "FieldValue: TryFieldValue" )
12721272 }
12731273 return v
12741274}
0 commit comments