summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qcore_mac.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/corelib/kernel/qcore_mac.cpp b/src/corelib/kernel/qcore_mac.cpp
index 0814c1a..e0dae37 100644
--- a/src/corelib/kernel/qcore_mac.cpp
+++ b/src/corelib/kernel/qcore_mac.cpp
@@ -41,22 +41,22 @@
#include <private/qcore_mac_p.h>
#include <new>
-#include "qvarlengtharray.h"
QT_BEGIN_NAMESPACE
QString QCFString::toQString(CFStringRef str)
{
- if(!str)
+ if (!str)
return QString();
+
CFIndex length = CFStringGetLength(str);
- const UniChar *chars = CFStringGetCharactersPtr(str);
- if (chars)
- return QString(reinterpret_cast<const QChar *>(chars), length);
+ if (length == 0)
+ return QString();
- QVarLengthArray<UniChar> buffer(length);
- CFStringGetCharacters(str, CFRangeMake(0, length), buffer.data());
- return QString(reinterpret_cast<const QChar *>(buffer.constData()), length);
+ QString string(length, Qt::Uninitialized);
+ CFStringGetCharacters(str, CFRangeMake(0, length), reinterpret_cast<UniChar *>(const_cast<QChar *>(string.unicode())));
+
+ return string;
}
QCFString::operator QString() const