make use of new pack() codes for longs

This commit is contained in:
Dylan K. Taylor 2017-10-28 14:04:41 +01:00
parent 5303a710ac
commit e88aa385a3

View File

@ -379,12 +379,11 @@ class Binary{
/** /**
* Reads an 8-byte integer. * Reads an 8-byte integer.
* *
* @param string $x * @param string $str
* @return int * @return int
*/ */
public static function readLong(string $x) : int{ public static function readLong(string $str) : int{
$int = unpack("N*", $x); return unpack("J", $str)[1];
return ($int[1] << 32) | $int[2];
} }
/** /**
@ -394,7 +393,7 @@ class Binary{
* @return string * @return string
*/ */
public static function writeLong(int $value) : string{ public static function writeLong(int $value) : string{
return pack("NN", $value >> 32, $value & 0xFFFFFFFF); return pack("J", $value);
} }
/** /**
@ -404,7 +403,7 @@ class Binary{
* @return int * @return int
*/ */
public static function readLLong(string $str) : int{ public static function readLLong(string $str) : int{
return self::readLong(strrev($str)); return unpack("P", $str)[1];
} }
/** /**
@ -414,7 +413,7 @@ class Binary{
* @return string * @return string
*/ */
public static function writeLLong(int $value) : string{ public static function writeLLong(int $value) : string{
return strrev(self::writeLong($value)); return pack("P", $value);
} }