[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: meinproc4 on Mac, KLocale (was Re: What to test for =?iso-8859-1?Q?4.13=3F)?=
From: Thomas_Lübking <thomas.luebking () gmail ! com>
Date: 2014-03-18 23:21:54
Message-ID: cb1f6def-af05-48b6-8670-fc1ae79f8e64 () gmail ! com
[Download RAW message or body]
On Mittwoch, 19. März 2014 00:00:15 CEST, Luigi Toscano wrote:
> Yes, but it's more a workaround. It would be interesting to know why that
> string (which should contain some value, maybe) is NULL.
Seems this can happen:
http://idevapps.com/forum/showthread.php?tid=625
@Marko
in kdelibs/kdecore/localization/klocale_mac.cpp find
QString KLocaleMacPrivate::macLocaleValue( CFStringRef key ) const
{
return convert_CFString_to_QString( CFStringRef( CFLocaleGetValue( m_macLocale, key ) ) );
}
and change it to
QString KLocaleMacPrivate::macLocaleValue( CFStringRef key ) const
{
CFStringRef strRef = CFStringRef( CFLocaleGetValue( m_macLocale, key ) );
qDebug() << "-----";
CFShow(key);
CFShow(strRef);
qDebug() << "====";
return convert_CFString_to_QString(strRef);
}
and in kdelibs/kdecore/kernel/kkernel_mac.cpp find (on the very top)
QString convert_CFString_to_QString(CFStringRef str) {
+ if (str == NULL) {
+ qDebug() << "This would have crashed.";
+ return QString();
+ }
CFIndex length = CFStringGetLength(str);
const UniChar *chars = CFStringGetCharactersPtr(str);
if (chars)
return QString(reinterpret_cast<const QChar *>(chars), length);
QVarLengthArray<UniChar> buffer(length);
CFStringGetCharacters(str, CFRangeMake(0, length), buffer.data());
return QString(reinterpret_cast<const QChar *>(buffer.constData()), length);
}
Cheers,
Thomas
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic