diff --git a/src/Global.cpp b/src/Global.cpp index 748cf741..39d7a41f 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -1811,7 +1811,7 @@ const QStringList &lamexp_arguments(void) /* * 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 *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; default: qWarning("Invalid 'known' folder was requested!"); - return QString(); + return *reinterpret_cast(NULL); break; } @@ -1858,7 +1858,7 @@ QString lamexp_known_folder(lamexp_known_folder_t folder_id) { 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; } - //Update cache - if(!folder.isEmpty()) + //Create cache + if(!g_lamexp_folder.knownFolders) { - if(!g_lamexp_folder.knownFolders) g_lamexp_folder.knownFolders = new QMap(); - g_lamexp_folder.knownFolders->insert(folderCacheId, folder); + g_lamexp_folder.knownFolders = new QMap(); } - 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!"); TerminateProcess(GetCurrentProcess(), -1); } - return true; + volatile bool retVal = true; + return retVal; } /* diff --git a/src/Global.h b/src/Global.h index 68ae2f68..241fd4b7 100644 --- a/src/Global.h +++ b/src/Global.h @@ -140,7 +140,7 @@ static const char* LAMEXP_DEFAULT_LANGID = "en"; //Auxiliary functions bool lamexp_clean_folder(const QString &folderPath); 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); bool lamexp_remove_file(const QString &filename); bool lamexp_themes_enabled(void);