Don't use explicit memory management

And avoid dangling pointers.
This commit is contained in:
Chocobo1
2022-03-23 15:27:47 +08:00
parent 8a708fd97e
commit bbd936fdfa
9 changed files with 28 additions and 36 deletions

View File

@@ -114,9 +114,9 @@ namespace
{
QPixmap pixmapForExtension(const QString &ext) const override
{
const QString extWithDot = QLatin1Char('.') + ext;
const std::wstring extWStr = QString(u'.' + ext).toStdWString();
SHFILEINFO sfi {};
HRESULT hr = ::SHGetFileInfoW(extWithDot.toStdWString().c_str(),
HRESULT hr = ::SHGetFileInfoW(extWStr.c_str(),
FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_ICON | SHGFI_USEFILEATTRIBUTES);
if (FAILED(hr))
return {};

View File

@@ -164,7 +164,8 @@ void Utils::Gui::openFolderSelect(const Path &path)
{
if (SUCCEEDED(::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)))
{
PIDLIST_ABSOLUTE pidl = ::ILCreateFromPathW(reinterpret_cast<const wchar_t *>(path.toString().utf16()));
const std::wstring pathWStr = path.toString().toStdWString();
PIDLIST_ABSOLUTE pidl = ::ILCreateFromPathW(pathWStr.c_str());
if (pidl)
{
::SHOpenFolderAndSelectItems(pidl, 0, nullptr, 0);