@@ -604,7 +604,7 @@ func readLengthEnodedString(b []byte) ([]byte, bool, int, error) {
604
604
// Get length
605
605
num , isNull , n := readLengthEncodedInteger (b )
606
606
if num < 1 {
607
- return nil , isNull , n , nil
607
+ return b [ n : n ] , isNull , n , nil
608
608
}
609
609
610
610
n += int (num )
@@ -632,40 +632,31 @@ func skipLengthEnodedString(b []byte) (int, error) {
632
632
return n , io .EOF
633
633
}
634
634
635
- func readLengthEncodedInteger (b []byte ) (num uint64 , isNull bool , n int ) {
635
+ func readLengthEncodedInteger (b []byte ) (uint64 , bool , int ) {
636
636
switch b [0 ] {
637
637
638
638
// 251: NULL
639
639
case 0xfb :
640
- n = 1
641
- isNull = true
642
- return
640
+ return 0 , true , 1
643
641
644
642
// 252: value of following 2
645
643
case 0xfc :
646
- num = uint64 (b [1 ]) | uint64 (b [2 ])<< 8
647
- n = 3
648
- return
644
+ return uint64 (b [1 ]) | uint64 (b [2 ])<< 8 , false , 3
649
645
650
646
// 253: value of following 3
651
647
case 0xfd :
652
- num = uint64 (b [1 ]) | uint64 (b [2 ])<< 8 | uint64 (b [3 ])<< 16
653
- n = 4
654
- return
648
+ return uint64 (b [1 ]) | uint64 (b [2 ])<< 8 | uint64 (b [3 ])<< 16 , false , 4
655
649
656
650
// 254: value of following 8
657
651
case 0xfe :
658
- num = uint64 (b [1 ]) | uint64 (b [2 ])<< 8 | uint64 (b [3 ])<< 16 |
659
- uint64 (b [4 ])<< 24 | uint64 (b [5 ])<< 32 | uint64 (b [6 ])<< 40 |
660
- uint64 (b [7 ])<< 48 | uint64 (b [8 ])<< 54
661
- n = 9
662
- return
652
+ return uint64 (b [1 ]) | uint64 (b [2 ])<< 8 | uint64 (b [3 ])<< 16 |
653
+ uint64 (b [4 ])<< 24 | uint64 (b [5 ])<< 32 | uint64 (b [6 ])<< 40 |
654
+ uint64 (b [7 ])<< 48 | uint64 (b [8 ])<< 54 ,
655
+ false , 9
663
656
}
664
657
665
658
// 0-250: value of first byte
666
- num = uint64 (b [0 ])
667
- n = 1
668
- return
659
+ return uint64 (b [0 ]), false , 1
669
660
}
670
661
671
662
func appendLengthEncodedInteger (b []byte , n uint64 ) []byte {
0 commit comments