mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
c_utf8_from_locale: optimize the UTF8 case on Linux
Avoid converting to a QString as an intermediate step
This commit is contained in:
parent
3107e63040
commit
bf2b089c5c
@ -59,7 +59,15 @@ QByteArray c_utf8_from_locale(const mbchar_t *wstr)
|
||||
}
|
||||
return dst;
|
||||
#else
|
||||
QTextDecoder dec(QTextCodec::codecForLocale());
|
||||
auto codec = QTextCodec::codecForLocale();
|
||||
#ifndef __APPLE__
|
||||
if (codec->mibEnum() == 106) { // UTF-8
|
||||
// Optimisation for UTF-8: no need to convert to QString.
|
||||
// We still need to do it for mac because of normalization
|
||||
return QByteArray(wstr);
|
||||
}
|
||||
#endif
|
||||
QTextDecoder dec(codec);
|
||||
QString s = dec.toUnicode(wstr, qstrlen(wstr));
|
||||
if (s.isEmpty() || dec.hasFailure()) {
|
||||
/* Conversion error: since we can't report error from this function, just return the original
|
||||
|
||||
Loading…
Reference in New Issue
Block a user