Spend more less time in the lock, do a sanity check, normalize path

This commit is contained in:
Dale Glass 2020-09-20 02:09:54 +02:00
parent 25a9716642
commit 929f395503

View file

@ -44,11 +44,20 @@ QUrl ExternalResource::getQUrl(Bucket bucket, const QUrl& relative_path) {
return relative_path;
}
std::lock_guard<std::mutex> guard(_bucketMutex);
QUrl base = _bucketBases[bucket];
QUrl merged = base.resolved(relative_path);
QUrl base;
{
std::lock_guard<std::mutex> guard(_bucketMutex);
base = _bucketBases[bucket];
}
qCDebug(external_resource) << "External resource resolved to " << merged;
QUrl merged = base.resolved(relative_path).adjusted(QUrl::NormalizePathSegments);
if ( merged.isValid() ) {
qCDebug(external_resource) << "External resource resolved to " << merged;
} else {
qCCritical(external_resource) << "External resource resolved to invalid URL " << merged << "; Error " << merged.errorString()
<< "; base = " << base << "; relative_path = " << relative_path;
}
return merged;
}