diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2010-02-16 17:23:18 (GMT) |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2010-02-16 18:10:38 (GMT) |
commit | d590fc729e3afaedf181da58f8b685d7597040da (patch) | |
tree | 446692610d5d85733074042115118a556f39c0e3 /src/sql/drivers/sqlite/qsql_sqlite.cpp | |
parent | e6b629f3ebc1d530218f01a735275e56bf474a18 (diff) | |
download | Qt-d590fc729e3afaedf181da58f8b685d7597040da.zip Qt-d590fc729e3afaedf181da58f8b685d7597040da.tar.gz Qt-d590fc729e3afaedf181da58f8b685d7597040da.tar.bz2 |
optimization: get rid of QString::fromUtf16() usage, part 2
QString::fromUtf16() is slow - it does a BOM check and optionally byte
swapping, which is utterly irrelevant when converting internal data
structures which are raw utf16 in host byte order. so replace it with
QString::fromUnicode() where possible (which seems to be everywhere).
the reasoning is the same as in commit e0fda52f, so not getting further
reviews.
Reviewed-by: denis
Reviewed-by: joao
Diffstat (limited to 'src/sql/drivers/sqlite/qsql_sqlite.cpp')
-rw-r--r-- | src/sql/drivers/sqlite/qsql_sqlite.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp index d3be304..24dcad9 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.cpp +++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp @@ -95,7 +95,7 @@ static QSqlError qMakeError(sqlite3 *access, const QString &descr, QSqlError::Er int errorCode = -1) { return QSqlError(descr, - QString::fromUtf16(static_cast<const ushort *>(sqlite3_errmsg16(access))), + QString(reinterpret_cast<const QChar *>(sqlite3_errmsg16(access))), type, errorCode); } @@ -162,13 +162,13 @@ void QSQLiteResultPrivate::initColumns(bool emptyResultset) q->init(nCols); for (int i = 0; i < nCols; ++i) { - QString colName = QString::fromUtf16( - static_cast<const ushort *>(sqlite3_column_name16(stmt, i)) + QString colName = QString(reinterpret_cast<const QChar *>( + sqlite3_column_name16(stmt, i)) ).remove(QLatin1Char('"')); // must use typeName for resolving the type to match QSqliteDriver::record - QString typeName = QString::fromUtf16( - static_cast<const ushort *>(sqlite3_column_decltype16(stmt, i))); + QString typeName = QString(reinterpret_cast<const QChar *>( + sqlite3_column_decltype16(stmt, i))); int dotIdx = colName.lastIndexOf(QLatin1Char('.')); QSqlField fld(colName.mid(dotIdx == -1 ? 0 : dotIdx + 1), qGetColumnType(typeName)); |