@@ -1563,24 +1563,34 @@ def self.load_codepage()
1563
1563
@@codepage_map_cache = map
1564
1564
end
1565
1565
1566
+ # @param str [String] Data to checksum
1567
+ # @return [Fixnum] 8-bit checksum
1566
1568
def self . checksum8 ( str )
1567
- str . unpack ( "C*" ) . inject ( :+ ) % 0x100
1569
+ ( str . unpack ( "C*" ) . inject ( :+ ) || 0 ) % 0x100
1568
1570
end
1569
1571
1572
+ # @param str [String] Little-endian data to checksum
1573
+ # @return [Fixnum] 16-bit checksum
1570
1574
def self . checksum16_le ( str )
1571
- str . unpack ( "v*" ) . inject ( :+ ) % 0x10000
1575
+ ( str . unpack ( "v*" ) . inject ( :+ ) || 0 ) % 0x10000
1572
1576
end
1573
1577
1578
+ # @param str [String] Big-endian data to checksum
1579
+ # @return [Fixnum] 16-bit checksum
1574
1580
def self . checksum16_be ( str )
1575
- str . unpack ( "n*" ) . inject ( :+ ) % 0x10000
1581
+ ( str . unpack ( "n*" ) . inject ( :+ ) || 0 ) % 0x10000
1576
1582
end
1577
1583
1584
+ # @param str [String] Little-endian data to checksum
1585
+ # @return [Fixnum] 32-bit checksum
1578
1586
def self . checksum32_le ( str )
1579
- str . unpack ( "V*" ) . inject ( :+ ) % 0x100000000
1587
+ ( str . unpack ( "V*" ) . inject ( :+ ) || 0 ) % 0x100000000
1580
1588
end
1581
1589
1590
+ # @param str [String] Big-endian data to checksum
1591
+ # @return [Fixnum] 32-bit checksum
1582
1592
def self . checksum32_be ( str )
1583
- str . unpack ( "N*" ) . inject ( :+ ) % 0x100000000
1593
+ ( str . unpack ( "N*" ) . inject ( :+ ) || 0 ) % 0x100000000
1584
1594
end
1585
1595
1586
1596
end
0 commit comments