Merge pull request #38196 from nextcloud/fix/fix-32bits-freespace-and-sizes

Get rid of more int casts in file size manipulations
This commit is contained in:
Côme Chilliet 2023-05-15 17:05:46 +02:00 committed by GitHub
commit 8362eea14e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 17 additions and 14 deletions

View file

@ -60,6 +60,7 @@ use OCP\Files\Search\ISearchOperator;
use OCP\Files\Search\ISearchQuery;
use OCP\Files\Storage\IStorage;
use OCP\IDBConnection;
use OCP\Util;
use Psr\Log\LoggerInterface;
/**
@ -191,8 +192,8 @@ class Cache implements ICache {
$data['path'] = (string)$data['path'];
$data['fileid'] = (int)$data['fileid'];
$data['parent'] = (int)$data['parent'];
$data['size'] = 0 + $data['size'];
$data['unencrypted_size'] = 0 + ($data['unencrypted_size'] ?? 0);
$data['size'] = Util::numericToNumber($data['size']);
$data['unencrypted_size'] = Util::numericToNumber($data['unencrypted_size'] ?? 0);
$data['mtime'] = (int)$data['mtime'];
$data['storage_mtime'] = (int)$data['storage_mtime'];
$data['encryptedVersion'] = (int)$data['encrypted'];
@ -900,7 +901,7 @@ class Cache implements ICache {
*
* @param string $path
* @param array|null|ICacheEntry $entry (optional) meta data of the folder
* @return int
* @return int|float
*/
public function calculateFolderSize($path, $entry = null) {
return $this->calculateFolderSizeInner($path, $entry);
@ -913,7 +914,7 @@ class Cache implements ICache {
* @param string $path
* @param array|null|ICacheEntry $entry (optional) meta data of the folder
* @param bool $ignoreUnknown don't mark the folder size as unknown if any of it's children are unknown
* @return int
* @return int|float
*/
protected function calculateFolderSizeInner(string $path, $entry = null, bool $ignoreUnknown = false) {
$totalSize = 0;
@ -937,13 +938,13 @@ class Cache implements ICache {
if ($rows) {
$sizes = array_map(function (array $row) {
return (int)$row['size'];
return Util::numericToNumber($row['size']);
}, $rows);
$unencryptedOnlySizes = array_map(function (array $row) {
return (int)$row['unencrypted_size'];
return Util::numericToNumber($row['unencrypted_size']);
}, $rows);
$unencryptedSizes = array_map(function (array $row) {
return (int)(($row['unencrypted_size'] > 0) ? $row['unencrypted_size'] : $row['size']);
return Util::numericToNumber(($row['unencrypted_size'] > 0) ? $row['unencrypted_size'] : $row['size']);
}, $rows);
$sum = array_sum($sizes);

View file

@ -36,7 +36,7 @@ class HomeCache extends Cache {
*
* @param string $path
* @param array|null|ICacheEntry $entry (optional) meta data of the folder
* @return int
* @return int|float
*/
public function calculateFolderSize($path, $entry = null) {
if ($path !== '/' and $path !== '' and $path !== 'files' and $path !== 'files_trashbin' and $path !== 'files_versions') {

View file

@ -386,7 +386,7 @@ class Scanner extends BasicEmitter implements IScanner {
* @param int $folderId id for the folder to be scanned
* @param bool $lock set to false to disable getting an additional read lock during scanning
* @param array $data the data of the folder before (re)scanning the children
* @return int the size of the scanned folder or -1 if the size is unknown at this stage
* @return int|float the size of the scanned folder or -1 if the size is unknown at this stage
*/
protected function scanChildren($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1, $folderId = null, $lock = true, array $data = []) {
if ($reuse === -1) {

View file

@ -240,7 +240,7 @@ class CacheJail extends CacheWrapper {
*
* @param string $path
* @param array|null|ICacheEntry $entry (optional) meta data of the folder
* @return int
* @return int|float
*/
public function calculateFolderSize($path, $entry = null) {
if ($this->getCache() instanceof Cache) {

View file

@ -250,7 +250,7 @@ class CacheWrapper extends Cache {
*
* @param string $path
* @param array|null|ICacheEntry $entry (optional) meta data of the folder
* @return int
* @return int|float
*/
public function calculateFolderSize($path, $entry = null) {
if ($this->getCache() instanceof Cache) {

View file

@ -51,6 +51,7 @@ use OCP\Files\StorageInvalidException;
use OCP\Files\StorageNotAvailableException;
use OCP\Http\Client\IClientService;
use OCP\ICertificateManager;
use OCP\Util;
use Psr\Http\Message\ResponseInterface;
use Sabre\DAV\Client;
use Sabre\DAV\Xml\Property\ResourceType;
@ -451,7 +452,7 @@ class DAV extends Common {
return FileInfo::SPACE_UNKNOWN;
}
if (isset($response['{DAV:}quota-available-bytes'])) {
return (int)$response['{DAV:}quota-available-bytes'];
return Util::numericToNumber($response['{DAV:}quota-available-bytes']);
} else {
return FileInfo::SPACE_UNKNOWN;
}
@ -605,7 +606,7 @@ class DAV extends Common {
}
return [
'mtime' => isset($response['{DAV:}getlastmodified']) ? strtotime($response['{DAV:}getlastmodified']) : null,
'size' => (int)($response['{DAV:}getcontentlength'] ?? 0),
'size' => Util::numericToNumber($response['{DAV:}getcontentlength'] ?? 0),
];
} catch (\Exception $e) {
$this->convertException($e, $path);

View file

@ -52,6 +52,7 @@ use OCP\Files\GenericFileException;
use OCP\Files\IMimeTypeDetector;
use OCP\Files\Storage\IStorage;
use OCP\IConfig;
use OCP\Util;
use Psr\Log\LoggerInterface;
/**
@ -422,7 +423,7 @@ class Local extends \OC\Files\Storage\Common {
if ($space === false || is_null($space)) {
return \OCP\Files\FileInfo::SPACE_UNKNOWN;
}
return (int)$space;
return Util::numericToNumber($space);
}
public function search($query) {