Skip to content

Commit d19f6d4

Browse files
committed
Make uintFromBytes return uint instead of uint64
1 parent 8e5fac6 commit d19f6d4

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

decoder.go

+12-8
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ func (d *decoder) sizeFromCtrlByte(ctrlByte byte, offset uint, typeNum dataType)
9999

100100
switch {
101101
case size == 30:
102-
size = 285 + uint(uintFromBytes(0, sizeBytes))
102+
size = 285 + uintFromBytes(0, sizeBytes)
103103
case size > 30:
104-
size = uint(uintFromBytes(0, sizeBytes)) + 65821
104+
size = uintFromBytes(0, sizeBytes) + 65821
105105
}
106106
return size, newOffset, nil
107107
}
@@ -507,13 +507,13 @@ func (d *decoder) decodePointer(
507507
return 0, 0, newOffsetError()
508508
}
509509
pointerBytes := d.buffer[offset:newOffset]
510-
var prefix uint64
510+
var prefix uint
511511
if pointerSize == 4 {
512512
prefix = 0
513513
} else {
514-
prefix = uint64(size & 0x7)
514+
prefix = uint(size & 0x7)
515515
}
516-
unpacked := uint(uintFromBytes(prefix, pointerBytes))
516+
unpacked := uintFromBytes(prefix, pointerBytes)
517517

518518
var pointerValueOffset uint
519519
switch pointerSize {
@@ -640,8 +640,12 @@ func (d *decoder) decodeStruct(
640640

641641
func (d *decoder) decodeUint(size uint, offset uint) (uint64, uint, error) {
642642
newOffset := offset + size
643-
val := uintFromBytes(0, d.buffer[offset:newOffset])
643+
bytes := d.buffer[offset:newOffset]
644644

645+
var val uint64
646+
for _, b := range bytes {
647+
val = (val << 8) | uint64(b)
648+
}
645649
return val, newOffset, nil
646650
}
647651

@@ -653,10 +657,10 @@ func (d *decoder) decodeUint128(size uint, offset uint) (*big.Int, uint, error)
653657
return val, newOffset, nil
654658
}
655659

656-
func uintFromBytes(prefix uint64, uintBytes []byte) uint64 {
660+
func uintFromBytes(prefix uint, uintBytes []byte) uint {
657661
val := prefix
658662
for _, b := range uintBytes {
659-
val = (val << 8) | uint64(b)
663+
val = (val << 8) | uint(b)
660664
}
661665
return val
662666
}

reader.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -205,13 +205,13 @@ func (r *Reader) readNode(nodeNumber uint, index uint) (uint, error) {
205205
baseOffset := nodeNumber * RecordSize / 4
206206

207207
var nodeBytes []byte
208-
var prefix uint64
208+
var prefix uint
209209
switch RecordSize {
210210
case 24:
211211
offset := baseOffset + index*3
212212
nodeBytes = r.buffer[offset : offset+3]
213213
case 28:
214-
prefix = uint64(r.buffer[baseOffset+3])
214+
prefix = uint(r.buffer[baseOffset+3])
215215
if index != 0 {
216216
prefix &= 0x0F
217217
} else {
@@ -225,7 +225,7 @@ func (r *Reader) readNode(nodeNumber uint, index uint) (uint, error) {
225225
default:
226226
return 0, newInvalidDatabaseError("unknown record size: %d", RecordSize)
227227
}
228-
return uint(uintFromBytes(prefix, nodeBytes)), nil
228+
return uintFromBytes(prefix, nodeBytes), nil
229229
}
230230

231231
func (r *Reader) retrieveData(pointer uint, result interface{}) error {

0 commit comments

Comments
 (0)