diff --git a/mmtk/Cargo.lock b/mmtk/Cargo.lock index e2dd50c..fc6c0c3 100644 --- a/mmtk/Cargo.lock +++ b/mmtk/Cargo.lock @@ -431,7 +431,7 @@ dependencies = [ [[package]] name = "mmtk" version = "0.26.0" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=f9b85bca5b1ae530854e09d553f3020edde46cdb#f9b85bca5b1ae530854e09d553f3020edde46cdb" +source = "git+https://github.com/wks/mmtk-core.git?rev=7d3f79d4e50dacec881252562c8c7946e2513e55#7d3f79d4e50dacec881252562c8c7946e2513e55" dependencies = [ "atomic", "atomic-traits", @@ -467,7 +467,7 @@ dependencies = [ [[package]] name = "mmtk-macros" version = "0.26.0" -source = "git+https://github.com/mmtk/mmtk-core.git?rev=f9b85bca5b1ae530854e09d553f3020edde46cdb#f9b85bca5b1ae530854e09d553f3020edde46cdb" +source = "git+https://github.com/wks/mmtk-core.git?rev=7d3f79d4e50dacec881252562c8c7946e2513e55#7d3f79d4e50dacec881252562c8c7946e2513e55" dependencies = [ "proc-macro-error", "proc-macro2", diff --git a/mmtk/Cargo.toml b/mmtk/Cargo.toml index b04d995..0dcb56c 100644 --- a/mmtk/Cargo.toml +++ b/mmtk/Cargo.toml @@ -36,8 +36,8 @@ probe = "0.5" features = ["is_mmtk_object", "object_pinning", "sticky_immix_non_moving_nursery"] # Uncomment the following lines to use mmtk-core from the official repository. -git = "https://github.com/mmtk/mmtk-core.git" -rev = "f9b85bca5b1ae530854e09d553f3020edde46cdb" +git = "https://github.com/wks/mmtk-core.git" +rev = "7d3f79d4e50dacec881252562c8c7946e2513e55" # Uncomment the following line to use mmtk-core from a local repository. # path = "../../mmtk-core" diff --git a/mmtk/src/api.rs b/mmtk/src/api.rs index 2b2500a..bb4511b 100644 --- a/mmtk/src/api.rs +++ b/mmtk/src/api.rs @@ -374,3 +374,20 @@ pub extern "C" fn mmtk_object_reference_write_post( ignored_target, ) } + +#[no_mangle] +pub extern "C" fn mmtk_print_all_objects() { + crate::mmtk().enumerate_objects(|object| { + println!("{object}"); + }) +} + +#[no_mangle] +pub extern "C" fn mmtk_enumerate_objects( + callback: extern "C" fn(ObjectReference, *mut libc::c_void), + data: *mut libc::c_void, +) { + crate::mmtk().enumerate_objects(|object| { + callback(object, data); + }) +}