File tree Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -52,6 +52,7 @@ extern void mmtk_unreachable(void);
52
52
extern unsigned char mmtk_pin_object (void * obj );
53
53
extern unsigned char mmtk_unpin_object (void * obj );
54
54
extern bool mmtk_is_object_pinned (void * obj );
55
+ extern void * mmtk_get_base_pointer (void * ptr );
55
56
extern unsigned char mmtk_pin_pointer (void * ptr );
56
57
extern bool mmtk_is_pointer_pinned (void * ptr );
57
58
extern const char * get_mmtk_version (void );
Original file line number Diff line number Diff line change @@ -582,6 +582,14 @@ macro_rules! handle_potential_internal_pointer {
582
582
} } ;
583
583
}
584
584
585
+ #[ no_mangle]
586
+ pub extern "C" fn mmtk_get_base_pointer ( addr : Address ) -> Address {
587
+ if let Some ( obj) = memory_manager:: find_object_from_internal_pointer ( addr, usize:: MAX ) {
588
+ return obj. to_raw_address ( ) ;
589
+ }
590
+ Address :: ZERO
591
+ }
592
+
585
593
#[ no_mangle]
586
594
pub extern "C" fn mmtk_pin_pointer ( addr : Address ) -> bool {
587
595
crate :: early_return_for_non_moving_build!( false ) ;
You can’t perform that action at this time.
0 commit comments