OS X: fix CFString leaks in mime classes
Some CFStringRefs created with CFStringCreate* methods were not being released. Using the QCFString helper class to perform auto release. Change-Id: I36d15c0d35118524089e99ea3cd53c41342d6308 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
This commit is contained in:
parent
dd6876f3fd
commit
f3fb787a32
@ -48,6 +48,7 @@
|
||||
|
||||
#include "qmacmime_p.h"
|
||||
#include "qguiapplication.h"
|
||||
#include "private/qcore_mac_p.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@ -335,9 +336,9 @@ QVariant QMacPasteboardMimePlainTextFallback::convertToMime(const QString &mimet
|
||||
// Note that public.text is documented by Apple to have an undefined encoding. From
|
||||
// testing it seems that utf8 is normally used, at least by Safari on iOS.
|
||||
const QByteArray &firstData = data.first();
|
||||
return QString::fromCFString(CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
return QString(QCFString(CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
reinterpret_cast<const UInt8 *>(firstData.constData()),
|
||||
firstData.size(), kCFStringEncodingUTF8, false));
|
||||
firstData.size(), kCFStringEncodingUTF8, false)));
|
||||
} else {
|
||||
qWarning("QMime::convertToMime: unhandled mimetype: %s", qPrintable(mimetype));
|
||||
}
|
||||
@ -410,9 +411,9 @@ QVariant QMacPasteboardMimeUnicodeText::convertToMime(const QString &mimetype, Q
|
||||
// I can only handle two types (system and unicode) so deal with them that way
|
||||
QVariant ret;
|
||||
if (flavor == QLatin1String("public.utf8-plain-text")) {
|
||||
ret = QString::fromCFString(CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
ret = QString(QCFString(CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
reinterpret_cast<const UInt8 *>(firstData.constData()),
|
||||
firstData.size(), CFStringGetSystemEncoding(), false));
|
||||
firstData.size(), CFStringGetSystemEncoding(), false)));
|
||||
} else if (flavor == QLatin1String("public.utf16-plain-text")) {
|
||||
ret = QString(reinterpret_cast<const QChar *>(firstData.constData()),
|
||||
firstData.size() / sizeof(QChar));
|
||||
|
@ -88,9 +88,9 @@ QVariant QMacPasteboardMimeTraditionalMacPlainText::convertToMime(const QString
|
||||
const QByteArray &firstData = data.first();
|
||||
QVariant ret;
|
||||
if (flavor == QLatin1String("com.apple.traditional-mac-plain-text")) {
|
||||
return QString::fromCFString(CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
return QString(QCFString(CFStringCreateWithBytes(kCFAllocatorDefault,
|
||||
reinterpret_cast<const UInt8 *>(firstData.constData()),
|
||||
firstData.size(), CFStringGetSystemEncoding(), false));
|
||||
firstData.size(), CFStringGetSystemEncoding(), false)));
|
||||
} else {
|
||||
qWarning("QMime::convertToMime: unhandled mimetype: %s", qPrintable(mimetype));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user