From 50f9135f4fdc6de72a8782de29036407304b5d30 Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Mon, 16 Dec 2013 20:02:50 +0100 Subject: [PATCH] Got cheney-play building. But am back in prior situation where runtime is still failing the following runtime assertion: fatal runtime error: assertion failed: self.live_allocations > 0 frame #0: 0x00007fff84ff5212 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff8743eb24 libsystem_c.dylib`pthread_kill + 90 frame #2: 0x00007fff87482f61 libsystem_c.dylib`abort + 143 frame #3: 0x000000010001492f cheney-play`rt::util::abort::hb4674cbd08997360e14421923060ba2051ba231925b8cb2e7e28c12656507a49a3::v0.9.pre + 3071 frame #4: 0x00000001000ea90e cheney-play`rt::local_heap::LocalHeap::free::hae8f8b9f886e684d2e6abe2c4ce537aacce17664887af2eb5bc7515699bb804226ap::v0.9.pre + 670 frame #5: 0x00000001000779bc cheney-play`rt::local_heap::local_free::h8a617ec6bb1a8e2021faf899d5d9a66bf3e8ba610004108d708529a330179aa9aa::v0.9.pre + 76 frame #6: 0x000000010000825c cheney-play`_$SP$u32::glue_free::h3bc3db1dbfa883dec5b4ba5704314e5a7d5549d0ea012b04e03db43b4f7e833fa2 + 60 frame #7: 0x0000000100008211 cheney-play`_$SP$u32::glue_drop::h3bc3db1dbfa883dec5b4ba5704314e5a7d5549d0ea012b04e03db43b4f7e833fa1 + 113 frame #8: 0x0000000100007ea1 cheney-play`main::h9a8945ce89cad64ddd702578fa37e19946342316d108fc91d6409ab8a7db6d1dav::v0.0 + 497 frame #9: 0x00000001000e2e18 cheney-play`rt::task::__extensions__::build_start_wrapper::anon::anon::expr_fn::aJ + 104 frame #10: 0x00000001000e1863 cheney-play`rt::task::__extensions__::run::anon::expr_fn::aB + 67 frame #11: 0x00000001000fe833 cheney-play`rust_try + 19 at /Users/fklock/Dev/Mozilla/rust-pnkgc/src/rt/rust_cxx_glue.cpp:20 frame #12: 0x00000001000e1773 cheney-play`rt::task::Unwinder::try::h25e7a74d88e20e9ed54441d6aee16e71fb42d44b19e545c88af4ec9ad90185eeKuaA::v0.9.pre + 67 frame #13: 0x00000001000e130f cheney-play`rt::task::Task::run::hb010c8566b5e75e53c9fb539451c36a9486e5d6bae30e5c90925787905058e055say::v0.9.pre + 127 frame #14: 0x00000001000e26ce cheney-play`rt::task::__extensions__::build_start_wrapper::anon::expr_fn::av + 606 --- cheney-play.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cheney-play.rs b/cheney-play.rs index c236049605eef..226c08c21c192 100644 --- a/cheney-play.rs +++ b/cheney-play.rs @@ -100,10 +100,11 @@ impl Chunk { } unsafe fn free_all(&mut self) { + use std::libc; let mut ptr = self.span.start; let mut next = self.next; loop { - global_heap::free_raw(ptr); + global_heap::free_raw(ptr as *libc::c_void); match next { None => break, Some(p) => { ptr = (*p).span.start; next = (*p).next; } @@ -306,7 +307,10 @@ impl Drop for Gc { unsafe { self.normal_chunks.free_all(); match self.large_objects.take() { - None => {}, Some(c) => c.free_all(), + None => {}, Some(c) => { + let c : *mut Chunk = cast::transmute(c); + (*c).free_all() + } } } }