Small optimization of known_folder() function. Will now return a const reference.
This commit is contained in:
parent
f282cff154
commit
9a7f0d5176
@ -1811,7 +1811,7 @@ const QStringList &lamexp_arguments(void)
|
|||||||
/*
|
/*
|
||||||
* Locate known folder on local system
|
* Locate known folder on local system
|
||||||
*/
|
*/
|
||||||
QString lamexp_known_folder(lamexp_known_folder_t folder_id)
|
const QString &lamexp_known_folder(lamexp_known_folder_t folder_id)
|
||||||
{
|
{
|
||||||
typedef HRESULT (WINAPI *SHGetKnownFolderPathFun)(__in const GUID &rfid, __in DWORD dwFlags, __in HANDLE hToken, __out PWSTR *ppszPath);
|
typedef HRESULT (WINAPI *SHGetKnownFolderPathFun)(__in const GUID &rfid, __in DWORD dwFlags, __in HANDLE hToken, __out PWSTR *ppszPath);
|
||||||
typedef HRESULT (WINAPI *SHGetFolderPathFun)(__in HWND hwndOwner, __in int nFolder, __in HANDLE hToken, __in DWORD dwFlags, __out LPWSTR pszPath);
|
typedef HRESULT (WINAPI *SHGetFolderPathFun)(__in HWND hwndOwner, __in int nFolder, __in HANDLE hToken, __in DWORD dwFlags, __out LPWSTR pszPath);
|
||||||
@ -1849,7 +1849,7 @@ QString lamexp_known_folder(lamexp_known_folder_t folder_id)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
qWarning("Invalid 'known' folder was requested!");
|
qWarning("Invalid 'known' folder was requested!");
|
||||||
return QString();
|
return *reinterpret_cast<QString*>(NULL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1858,7 +1858,7 @@ QString lamexp_known_folder(lamexp_known_folder_t folder_id)
|
|||||||
{
|
{
|
||||||
if(g_lamexp_folder.knownFolders->contains(folderCacheId))
|
if(g_lamexp_folder.knownFolders->contains(folderCacheId))
|
||||||
{
|
{
|
||||||
return g_lamexp_folder.knownFolders->value(folderCacheId, QString());
|
return (*g_lamexp_folder.knownFolders)[folderCacheId];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1917,14 +1917,15 @@ QString lamexp_known_folder(lamexp_known_folder_t folder_id)
|
|||||||
delete [] path;
|
delete [] path;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Update cache
|
//Create cache
|
||||||
if(!folder.isEmpty())
|
if(!g_lamexp_folder.knownFolders)
|
||||||
{
|
{
|
||||||
if(!g_lamexp_folder.knownFolders) g_lamexp_folder.knownFolders = new QMap<size_t, QString>();
|
g_lamexp_folder.knownFolders = new QMap<size_t, QString>();
|
||||||
g_lamexp_folder.knownFolders->insert(folderCacheId, folder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return folder;
|
//Update cache
|
||||||
|
g_lamexp_folder.knownFolders->insert(folderCacheId, folder);
|
||||||
|
return (*g_lamexp_folder.knownFolders)[folderCacheId];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2189,7 +2190,8 @@ static bool lamexp_entry_check(void)
|
|||||||
FatalAppExit(0, L"Application initialization has failed!");
|
FatalAppExit(0, L"Application initialization has failed!");
|
||||||
TerminateProcess(GetCurrentProcess(), -1);
|
TerminateProcess(GetCurrentProcess(), -1);
|
||||||
}
|
}
|
||||||
return true;
|
volatile bool retVal = true;
|
||||||
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -140,7 +140,7 @@ static const char* LAMEXP_DEFAULT_LANGID = "en";
|
|||||||
//Auxiliary functions
|
//Auxiliary functions
|
||||||
bool lamexp_clean_folder(const QString &folderPath);
|
bool lamexp_clean_folder(const QString &folderPath);
|
||||||
const QString lamexp_version2string(const QString &pattern, unsigned int version, const QString &defaultText);
|
const QString lamexp_version2string(const QString &pattern, unsigned int version, const QString &defaultText);
|
||||||
QString lamexp_known_folder(lamexp_known_folder_t folder_id);
|
const QString &lamexp_known_folder(lamexp_known_folder_t folder_id);
|
||||||
unsigned __int64 lamexp_free_diskspace(const QString &path, bool *ok = NULL);
|
unsigned __int64 lamexp_free_diskspace(const QString &path, bool *ok = NULL);
|
||||||
bool lamexp_remove_file(const QString &filename);
|
bool lamexp_remove_file(const QString &filename);
|
||||||
bool lamexp_themes_enabled(void);
|
bool lamexp_themes_enabled(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user