remove double loop for detecting changed mounts

Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
Robin Appelman 2018-08-16 18:24:10 +02:00
parent 1769029910
commit 67ae310693
No known key found for this signature in database
GPG Key ID: 42B69D8A64526EFB
1 changed files with 12 additions and 9 deletions

View File

@ -136,16 +136,19 @@ class UserMountCache implements IUserMountCache {
* @return ICachedMountInfo[] * @return ICachedMountInfo[]
*/ */
private function findChangedMounts(array $newMounts, array $cachedMounts) { private function findChangedMounts(array $newMounts, array $cachedMounts) {
$new = [];
foreach ($newMounts as $mount) {
$new[$mount->getRootId()] = $mount;
}
$changed = []; $changed = [];
foreach ($newMounts as $newMount) { foreach ($cachedMounts as $cachedMount) {
foreach ($cachedMounts as $cachedMount) { $rootId = $cachedMount->getRootId();
if (isset($new[$rootId])) {
$newMount = $new[$rootId];
if ( if (
$newMount->getRootId() === $cachedMount->getRootId() && $newMount->getMountPoint() !== $cachedMount->getMountPoint() ||
( $newMount->getStorageId() !== $cachedMount->getStorageId() ||
$newMount->getMountPoint() !== $cachedMount->getMountPoint() || $newMount->getMountId() !== $cachedMount->getMountId()
$newMount->getStorageId() !== $cachedMount->getStorageId() ||
$newMount->getMountId() !== $cachedMount->getMountId()
)
) { ) {
$changed[] = $newMount; $changed[] = $newMount;
} }
@ -198,7 +201,7 @@ class UserMountCache implements IUserMountCache {
} }
$mount_id = $row['mount_id']; $mount_id = $row['mount_id'];
if (!is_null($mount_id)) { if (!is_null($mount_id)) {
$mount_id = (int) $mount_id; $mount_id = (int)$mount_id;
} }
return new CachedMountInfo($user, (int)$row['storage_id'], (int)$row['root_id'], $row['mount_point'], $mount_id, isset($row['path']) ? $row['path'] : ''); return new CachedMountInfo($user, (int)$row['storage_id'], (int)$row['root_id'], $row['mount_point'], $mount_id, isset($row['path']) ? $row['path'] : '');
} }