Skip to content
Snippets Groups Projects
Commit a9b28323 authored by Andreas Fischer's avatar Andreas Fischer
Browse files

Add LargeFileHelper::__construct() verifying that our assumptions hold.

parent 2c36a4b0
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,31 @@ namespace OC;
* Helper class for large files on 32-bit platforms.
*/
class LargeFileHelper {
/**
* pow(2, 53) as a base-10 string.
* @var string
*/
const POW_2_53 = '9007199254740992';
/**
* pow(2, 53) - 1 as a base-10 string.
* @var string
*/
const POW_2_53_MINUS_1 = '9007199254740991';
/**
* @brief Constructor. Checks whether our assumptions hold on the platform
* we are on, throws an exception if they do not hold.
*/
public function __construct() {
$pow_2_53 = floatval(self::POW_2_53_MINUS_1) + 1.0;
if ($this->formatUnsignedInteger($pow_2_53) !== self::POW_2_53) {
throw new \RunTimeException(
'This class assumes floats to be double precision or "better".'
);
}
}
/**
* @brief Formats a signed integer or float as an unsigned integer base-10
* string. Passed strings will be checked for being base-10.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment