diff options
Diffstat (limited to 'src/corelib/io')
-rw-r--r-- | src/corelib/io/qfilesystemengine_win.cpp | 16 | ||||
-rw-r--r-- | src/corelib/io/qsettings_win.cpp | 28 |
2 files changed, 24 insertions, 20 deletions
diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index fadc058110..74081b4ffa 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -935,7 +935,7 @@ static bool tryFindFallback(const QFileSystemEntry &fname, QFileSystemMetaData & bool QFileSystemEngine::fillMetaData(int fd, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { - HANDLE fHandle = (HANDLE)_get_osfhandle(fd); + auto fHandle = reinterpret_cast<HANDLE>(_get_osfhandle(fd)); if (fHandle != INVALID_HANDLE_VALUE) { return fillMetaData(fHandle, data, what); } @@ -1014,7 +1014,8 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM WIN32_FIND_DATA findData; // The memory structure for WIN32_FIND_DATA is same as WIN32_FILE_ATTRIBUTE_DATA // for all members used by fillFindData(). - bool ok = ::GetFileAttributesEx((wchar_t*)fname.nativeFilePath().utf16(), GetFileExInfoStandard, + bool ok = ::GetFileAttributesEx(reinterpret_cast<const wchar_t*>(fname.nativeFilePath().utf16()), + GetFileExInfoStandard, reinterpret_cast<WIN32_FILE_ATTRIBUTE_DATA *>(&findData)); if (ok) { data.fillFromFindData(findData, false, fname.isDriveRoot()); @@ -1069,19 +1070,22 @@ static bool isDirPath(const QString &dirPath, bool *existed) if (path.length() == 2 && path.at(1) == QLatin1Char(':')) path += QLatin1Char('\\'); + const QString longPath = QFSFileEnginePrivate::longFileName(path); #ifndef Q_OS_WINRT - DWORD fileAttrib = ::GetFileAttributes((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16()); + DWORD fileAttrib = ::GetFileAttributes(reinterpret_cast<const wchar_t*>(longPath.utf16())); #else // Q_OS_WINRT DWORD fileAttrib = INVALID_FILE_ATTRIBUTES; WIN32_FILE_ATTRIBUTE_DATA data; - if (::GetFileAttributesEx((const wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16(), GetFileExInfoStandard, &data)) + if (::GetFileAttributesEx(reinterpret_cast<const wchar_t*>(longPath.utf16()), + GetFileExInfoStandard, &data)) { fileAttrib = data.dwFileAttributes; + } #endif // Q_OS_WINRT if (fileAttrib == INVALID_FILE_ATTRIBUTES) { int errorCode = GetLastError(); if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { WIN32_FIND_DATA findData; - if (getFindData(QFSFileEnginePrivate::longFileName(path), findData)) + if (getFindData(longPath, findData)) fileAttrib = findData.dwFileAttributes; } } @@ -1411,7 +1415,7 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per if (mode == 0) // not supported return false; - bool ret = (::_wchmod((wchar_t*)entry.nativeFilePath().utf16(), mode) == 0); + bool ret = ::_wchmod(reinterpret_cast<const wchar_t*>(entry.nativeFilePath().utf16()), mode) == 0; if(!ret) error = QSystemError(errno, QSystemError::StandardLibraryError); return ret; diff --git a/src/corelib/io/qsettings_win.cpp b/src/corelib/io/qsettings_win.cpp index 43e1411c76..e1922674ef 100644 --- a/src/corelib/io/qsettings_win.cpp +++ b/src/corelib/io/qsettings_win.cpp @@ -515,7 +515,7 @@ bool QWinSettingsPrivate::readKey(HKEY parentHandle, const QString &rSubKey, QVa case REG_SZ: { QString s; if (dataSize) { - s = QString::fromWCharArray(((const wchar_t *)data.constData())); + s = QString::fromWCharArray(reinterpret_cast<const wchar_t *>(data.constData())); } if (value != 0) *value = stringToVariant(s); @@ -527,7 +527,7 @@ bool QWinSettingsPrivate::readKey(HKEY parentHandle, const QString &rSubKey, QVa if (dataSize) { int i = 0; for (;;) { - QString s = QString::fromWCharArray((const wchar_t *)data.constData() + i); + QString s = QString::fromWCharArray(reinterpret_cast<const wchar_t *>(data.constData()) + i); i += s.length() + 1; if (s.isEmpty()) @@ -544,7 +544,7 @@ bool QWinSettingsPrivate::readKey(HKEY parentHandle, const QString &rSubKey, QVa case REG_BINARY: { QString s; if (dataSize) { - s = QString::fromWCharArray((const wchar_t *)data.constData(), data.size() / 2); + s = QString::fromWCharArray(reinterpret_cast<const wchar_t *>(data.constData()), data.size() / 2); } if (value != 0) *value = stringToVariant(s); @@ -555,7 +555,7 @@ bool QWinSettingsPrivate::readKey(HKEY parentHandle, const QString &rSubKey, QVa case REG_DWORD: { Q_ASSERT(data.size() == sizeof(int)); int i; - memcpy((char*)&i, data.constData(), sizeof(int)); + memcpy(reinterpret_cast<char*>(&i), data.constData(), sizeof(int)); if (value != 0) *value = i; break; @@ -564,7 +564,7 @@ bool QWinSettingsPrivate::readKey(HKEY parentHandle, const QString &rSubKey, QVa case REG_QWORD: { Q_ASSERT(data.size() == sizeof(qint64)); qint64 i; - memcpy((char*)&i, data.constData(), sizeof(qint64)); + memcpy(reinterpret_cast<char*>(&i), data.constData(), sizeof(qint64)); if (value != 0) *value = i; break; @@ -688,12 +688,12 @@ void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value) if (type == REG_BINARY) { QString s = variantToString(value); - regValueBuff = QByteArray((const char*)s.utf16(), s.length() * 2); + regValueBuff = QByteArray(reinterpret_cast<const char*>(s.utf16()), s.length() * 2); } else { QStringList::const_iterator it = l.constBegin(); for (; it != l.constEnd(); ++it) { const QString &s = *it; - regValueBuff += QByteArray((const char*)s.utf16(), (s.length() + 1) * 2); + regValueBuff += QByteArray(reinterpret_cast<const char*>(s.utf16()), (s.length() + 1) * 2); } regValueBuff.append((char)0); regValueBuff.append((char)0); @@ -705,7 +705,7 @@ void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value) case QVariant::UInt: { type = REG_DWORD; qint32 i = value.toInt(); - regValueBuff = QByteArray((const char*)&i, sizeof(qint32)); + regValueBuff = QByteArray(reinterpret_cast<const char*>(&i), sizeof(qint32)); break; } @@ -713,7 +713,7 @@ void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value) case QVariant::ULongLong: { type = REG_QWORD; qint64 i = value.toLongLong(); - regValueBuff = QByteArray((const char*)&i, sizeof(qint64)); + regValueBuff = QByteArray(reinterpret_cast<const char*>(&i), sizeof(qint64)); break; } @@ -725,11 +725,11 @@ void QWinSettingsPrivate::set(const QString &uKey, const QVariant &value) // string type. Otherwise we use REG_BINARY. QString s = variantToString(value); type = s.contains(QChar::Null) ? REG_BINARY : REG_SZ; - if (type == REG_BINARY) { - regValueBuff = QByteArray((const char*)s.utf16(), s.length() * 2); - } else { - regValueBuff = QByteArray((const char*)s.utf16(), (s.length() + 1) * 2); - } + int length = s.length(); + if (type == REG_SZ) + ++length; + regValueBuff = QByteArray(reinterpret_cast<const char *>(s.utf16()), + int(sizeof(wchar_t)) * length); break; } } |