QImageReader: Pass up information about resource errors on open
If a system runs out of FDs, there is no sense in trying to autodetect the format - as the real problem is the lack of FDs, not the non-existent file. Change-Id: I3302340859c3cc62995ac1b7b3c7b6e6326cb43e Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
This commit is contained in:
parent
108956b53e
commit
66e162e8f1
@ -564,6 +564,16 @@ bool QImageReaderPrivate::initHandler()
|
||||
|
||||
// probe the file extension
|
||||
if (deleteDevice && !device->isOpen() && !device->open(QIODevice::ReadOnly) && autoDetectImageFormat) {
|
||||
Q_ASSERT(qobject_cast<QFile*>(device) != 0); // future-proofing; for now this should always be the case, so...
|
||||
QFile *file = static_cast<QFile *>(device);
|
||||
|
||||
if (file->error() == QFileDevice::ResourceError) {
|
||||
// this is bad. we should abort the open attempt and note the failure.
|
||||
imageReaderError = QImageReader::DeviceError;
|
||||
errorString = file->errorString();
|
||||
return false;
|
||||
}
|
||||
|
||||
QList<QByteArray> extensions = QImageReader::supportedImageFormats();
|
||||
if (!format.isEmpty()) {
|
||||
// Try the most probable extension first
|
||||
@ -574,7 +584,6 @@ bool QImageReaderPrivate::initHandler()
|
||||
|
||||
int currentExtension = 0;
|
||||
|
||||
QFile *file = static_cast<QFile *>(device);
|
||||
QString fileName = file->fileName();
|
||||
|
||||
do {
|
||||
|
Loading…
Reference in New Issue
Block a user