about summary refs log tree commit diff
path: root/src/rt/rust_kernel.cpp
diff options
context:
space:
mode:
authorEric Holk <eholk@mozilla.com>2011-06-28 11:34:20 -0700
committerGraydon Hoare <graydon@mozilla.com>2011-06-28 16:12:33 -0700
commit02f6645fca946fd7cb9f55036c05a908f0567ceb (patch)
tree88d71ff1fd10f3f8312f2c8a1041d7eeaf0251e4 /src/rt/rust_kernel.cpp
parent2f84987a48c3625670cd62321f0e3dcb5c0e8768 (diff)
downloadrust-02f6645fca946fd7cb9f55036c05a908f0567ceb.tar.gz
rust-02f6645fca946fd7cb9f55036c05a908f0567ceb.zip
Moved win32_require to the kernel.
Diffstat (limited to 'src/rt/rust_kernel.cpp')
-rw-r--r--src/rt/rust_kernel.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/rt/rust_kernel.cpp b/src/rt/rust_kernel.cpp
index 5e495b8c822..ee709fb191f 100644
--- a/src/rt/rust_kernel.cpp
+++ b/src/rt/rust_kernel.cpp
@@ -245,6 +245,25 @@ int rust_kernel::start_task_threads(int num_threads)
     return dom->rval;
 }
 
+#ifdef __WIN32__
+void
+rust_kernel::win32_require(LPCTSTR fn, BOOL ok) {
+    if (!ok) {
+        LPTSTR buf;
+        DWORD err = GetLastError();
+        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+                      FORMAT_MESSAGE_FROM_SYSTEM |
+                      FORMAT_MESSAGE_IGNORE_INSERTS,
+                      NULL, err,
+                      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                      (LPTSTR) &buf, 0, NULL );
+        DLOG_ERR(dom, dom, "%s failed with error %ld: %s", fn, err, buf);
+        LocalFree((HLOCAL)buf);
+        I(dom, ok);
+    }
+}
+#endif
+
 rust_task_thread::rust_task_thread(int id, rust_kernel *owner)
     : id(id), owner(owner)
 {