directfb: Use QPlatformPixmap::fromFile for Qt resources

Move to fromFile to load Qt resources for two reasons. The
first is that ::fromData creates a QBuffer on our raw data
and is passing that to the QImageReaders. Right now we there
is a QFile -> QByteArray -> QBuffer transition that wastes
cycles. The other reason is that QPlatformPixmap::fromData
did/does not check if the decoded image is null and might
cause a crash because of that.

Change-Id: I7cb92d84874323e7205ab28883cc0fe9ecca1e27
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
This commit is contained in:
Holger Hans Peter Freyther 2012-01-23 13:49:35 +01:00 committed by Qt by Nokia
parent e03386945f
commit 8f6ee81ee9

View File

@ -247,14 +247,8 @@ bool QDirectFbBlitterPlatformPixmap::fromFile(const QString &filename, const cha
return QBlittablePlatformPixmap::fromFile(filename, format, flags);
// Deal with resources
if (filename.startsWith(QLatin1Char(':'))) { // resource
QFile file(filename);
if (!file.open(QIODevice::ReadOnly))
return false;
const QByteArray data = file.readAll();
file.close();
return fromData(reinterpret_cast<const uchar*>(data.constData()), data.size(), format, flags);
}
if (filename.startsWith(QLatin1Char(':')))
return QBlittablePlatformPixmap::fromFile(filename, format, flags);
// Try to use directfb to load it.
DFBDataBufferDescription description;