@@ -99,9 +99,9 @@ func (d *decoder) sizeFromCtrlByte(ctrlByte byte, offset uint, typeNum dataType)
99
99
100
100
switch {
101
101
case size == 30 :
102
- size = 285 + uint ( uintFromBytes (0 , sizeBytes ) )
102
+ size = 285 + uintFromBytes (0 , sizeBytes )
103
103
case size > 30 :
104
- size = uint ( uintFromBytes (0 , sizeBytes ) ) + 65821
104
+ size = uintFromBytes (0 , sizeBytes ) + 65821
105
105
}
106
106
return size , newOffset , nil
107
107
}
@@ -507,13 +507,13 @@ func (d *decoder) decodePointer(
507
507
return 0 , 0 , newOffsetError ()
508
508
}
509
509
pointerBytes := d .buffer [offset :newOffset ]
510
- var prefix uint64
510
+ var prefix uint
511
511
if pointerSize == 4 {
512
512
prefix = 0
513
513
} else {
514
- prefix = uint64 (size & 0x7 )
514
+ prefix = uint (size & 0x7 )
515
515
}
516
- unpacked := uint ( uintFromBytes (prefix , pointerBytes ) )
516
+ unpacked := uintFromBytes (prefix , pointerBytes )
517
517
518
518
var pointerValueOffset uint
519
519
switch pointerSize {
@@ -640,8 +640,12 @@ func (d *decoder) decodeStruct(
640
640
641
641
func (d * decoder ) decodeUint (size uint , offset uint ) (uint64 , uint , error ) {
642
642
newOffset := offset + size
643
- val := uintFromBytes ( 0 , d .buffer [offset :newOffset ])
643
+ bytes := d .buffer [offset :newOffset ]
644
644
645
+ var val uint64
646
+ for _ , b := range bytes {
647
+ val = (val << 8 ) | uint64 (b )
648
+ }
645
649
return val , newOffset , nil
646
650
}
647
651
@@ -653,10 +657,10 @@ func (d *decoder) decodeUint128(size uint, offset uint) (*big.Int, uint, error)
653
657
return val , newOffset , nil
654
658
}
655
659
656
- func uintFromBytes (prefix uint64 , uintBytes []byte ) uint64 {
660
+ func uintFromBytes (prefix uint , uintBytes []byte ) uint {
657
661
val := prefix
658
662
for _ , b := range uintBytes {
659
- val = (val << 8 ) | uint64 (b )
663
+ val = (val << 8 ) | uint (b )
660
664
}
661
665
return val
662
666
}
0 commit comments