about summary refs log tree commit diff
path: root/src/libstd/uv.rs
diff options
context:
space:
mode:
authorJeff Olson <olson.jeffery@gmail.com>2012-04-01 13:47:08 -0700
committerBrian Anderson <banderson@mozilla.com>2012-04-06 15:35:49 -0700
commit26addfdd8193b78783aa3235cb0823082b1da2c8 (patch)
treede06110d0f64e199b052c17cf9b3834340660385 /src/libstd/uv.rs
parent2b606ae5f3134f94080eaec83ac5864de2f6c6a0 (diff)
downloadrust-26addfdd8193b78783aa3235cb0823082b1da2c8.tar.gz
rust-26addfdd8193b78783aa3235cb0823082b1da2c8.zip
fix size of uv_async_t on windows. is this the cause of the libuv segfault?
Diffstat (limited to 'src/libstd/uv.rs')
-rw-r--r--src/libstd/uv.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/libstd/uv.rs b/src/libstd/uv.rs
index 4c4415437bc..c346862a07a 100644
--- a/src/libstd/uv.rs
+++ b/src/libstd/uv.rs
@@ -278,17 +278,24 @@ fn gen_stub_uv_write_t() -> uv_write_t {
 #[cfg(target_os = "linux")]
 #[cfg(target_os = "macos")]
 #[cfg(target_os = "freebsd")]
-#[cfg(target_os = "win32")]
 type uv_async_t = {
     fields: uv_handle_fields,
     a00: *u8, a01: *u8, a02: *u8, a03: *u8,
     a04: *u8, a05: *u8, a06: *u8, a07: *u8,
     a08: *u8, a09: *u8, a10: *u8
 };
+// win32 size 132 (68)
+#[cfg(target_os = "win32")]
+type uv_async_t = {
+    fields: uv_handle_fields,
+    a00: *u8, a01: *u8, a02: *u8, a03: *u8,
+    a04: *u8, a05: *u8, a06: *u8, a07: *u8,
+    a08: *u8, a09: *u8, a10: *u8, a11: *u8,
+    a12: *u8
+};
 #[cfg(target_os = "linux")]
 #[cfg(target_os = "macos")]
 #[cfg(target_os = "freebsd")]
-#[cfg(target_os = "win32")]
 fn gen_stub_uv_async_t() -> uv_async_t {
     ret { fields: { loop_handle: ptr::null(), type_: 0u32,
                     close_cb: ptr::null(),
@@ -298,6 +305,17 @@ fn gen_stub_uv_async_t() -> uv_async_t {
         a08: 0 as *u8, a09: 0 as *u8, a10: 0 as *u8
     };
 }
+#[cfg(target_os = "win32")]
+fn gen_stub_uv_async_t() -> uv_async_t {
+    ret { fields: { loop_handle: ptr::null(), type_: 0u32,
+                    close_cb: ptr::null(),
+                    mut data: ptr::null() },
+        a00: 0 as *u8, a01: 0 as *u8, a02: 0 as *u8, a03: 0 as *u8,
+        a04: 0 as *u8, a05: 0 as *u8, a06: 0 as *u8, a07: 0 as *u8,
+        a08: 0 as *u8, a09: 0 as *u8, a10: 0 as *u8, a11: 0 as *u8,
+        a12: 0 as *u8
+    };
+}
 
 // unix size: 16
 #[cfg(target_os = "linux")]