summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/wtf/gobject
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/wtf/gobject')
-rw-r--r--Source/JavaScriptCore/wtf/gobject/GlibUtilities.cpp16
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