QLibraryInfo: avoid unneeded conversion for path prefix

Ammends 4ac872639e. Change return type for getPrefix to eliminate
toLatin1/fromLocal8bit conversion of initial value for relocatable
prefix to preserve not-latin1 characters and return valid prefix path.

Fixes: QTBUG-81462
Change-Id: I15cfa49e9e440e257b04dd31803cd1478f3b07f5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
bb10
Kirill Burtsev 2020-03-03 17:26:53 +01:00
parent 6806cb341c
commit 2f52afda8e
1 changed files with 6 additions and 8 deletions

View File

@ -661,7 +661,7 @@ static QString getHostPrefixFromHostBinDir()
#endif
#ifndef QT_BUILD_QMAKE_BOOTSTRAP
static const char *getPrefix(
static QString getPrefix(
#ifdef QT_BUILD_QMAKE
QLibraryInfo::PathGroup group
#endif
@ -670,15 +670,13 @@ static const char *getPrefix(
#if defined(QT_BUILD_QMAKE)
# if QT_CONFIGURE_CROSSBUILD
if (group == QLibraryInfo::DevicePaths)
return QT_CONFIGURE_PREFIX_PATH;
return QString::fromLocal8Bit(QT_CONFIGURE_PREFIX_PATH);
# endif
static QByteArray extPrefixPath = getExtPrefixFromHostBinDir().toLatin1();
return extPrefixPath.constData();
return getExtPrefixFromHostBinDir();
#elif QT_CONFIG(relocatable)
static QByteArray prefixPath = getRelocatablePrefix().toLatin1();
return prefixPath.constData();
return getRelocatablePrefix();
#else
return QT_CONFIGURE_PREFIX_PATH;
return QString::fromLocal8Bit(QT_CONFIGURE_PREFIX_PATH);
#endif
}
#endif // QT_BUILD_QMAKE_BOOTSTRAP
@ -794,7 +792,7 @@ QLibraryInfo::rawLocation(LibraryLocation loc, PathGroup group)
if (!fromConf) {
const char * volatile path = 0;
if (loc == PrefixPath) {
path = getPrefix(
ret = getPrefix(
#ifdef QT_BUILD_QMAKE
group
#endif