diff options
Diffstat (limited to 'Source/JavaScriptCore/wtf/gobject')
-rw-r--r-- | Source/JavaScriptCore/wtf/gobject/GlibUtilities.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/wtf/gobject/GlibUtilities.cpp b/Source/JavaScriptCore/wtf/gobject/GlibUtilities.cpp index 6fcd806eb..1a2a8b1f1 100644 --- a/Source/JavaScriptCore/wtf/gobject/GlibUtilities.cpp +++ b/Source/JavaScriptCore/wtf/gobject/GlibUtilities.cpp @@ -20,8 +20,13 @@ #include "config.h" #include "GlibUtilities.h" +#if OS(WINDOWS) +#include <windows.h> +#include <wtf/text/WTFString.h> +#else #include <limits.h> #include <unistd.h> +#endif #if OS(LINUX) CString getCurrentExecutablePath() @@ -41,4 +46,15 @@ CString getCurrentExecutablePath() return CString(); return CString(readLinkBuffer, result); } +#elif OS(WINDOWS) +CString getCurrentExecutablePath() +{ + static WCHAR buffer[MAX_PATH]; + DWORD length = GetModuleFileNameW(0, buffer, MAX_PATH); + if (!length || (length == MAX_PATH && GetLastError() == ERROR_INSUFFICIENT_BUFFER)) + return CString(); + + String path(buffer, length); + return path.utf8(); +} #endif |