@@ -27,9 +27,9 @@ impl ObjectModel<OpenJDK> for VMObjectModel {
27
27
let bytes = unsafe { Oop :: from ( from) . size ( ) } ;
28
28
let dst = copy_context. alloc_copy ( from, bytes, :: std:: mem:: size_of :: < usize > ( ) , 0 , copy) ;
29
29
// Copy
30
- let src = from. to_address ( ) ;
30
+ let src = from. to_raw_address ( ) ;
31
31
unsafe { std:: ptr:: copy_nonoverlapping :: < u8 > ( src. to_ptr ( ) , dst. to_mut_ptr ( ) , bytes) }
32
- let to_obj = unsafe { dst . to_object_reference ( ) } ;
32
+ let to_obj = ObjectReference :: from_raw_address ( dst ) ;
33
33
copy_context. post_copy ( to_obj, bytes, copy) ;
34
34
to_obj
35
35
}
@@ -39,22 +39,22 @@ impl ObjectModel<OpenJDK> for VMObjectModel {
39
39
let bytes = unsafe { ( ( * UPCALLS ) . get_object_size ) ( from) } ;
40
40
if need_copy {
41
41
// copy obj to target
42
- let dst = to. to_address ( ) ;
42
+ let dst = to. to_raw_address ( ) ;
43
43
// Copy
44
- let src = from. to_address ( ) ;
44
+ let src = from. to_raw_address ( ) ;
45
45
for i in 0 ..bytes {
46
46
unsafe { ( dst + i) . store ( ( src + i) . load :: < u8 > ( ) ) } ;
47
47
}
48
48
}
49
- let start = Self :: object_start_ref ( to) ;
49
+ let start = Self :: ref_to_object_start ( to) ;
50
50
if region != Address :: ZERO {
51
51
fill_alignment_gap :: < OpenJDK > ( region, start) ;
52
52
}
53
53
start + bytes
54
54
}
55
55
56
56
fn get_reference_when_copied_to ( _from : ObjectReference , to : Address ) -> ObjectReference {
57
- unsafe { to . to_object_reference ( ) }
57
+ ObjectReference :: from_raw_address ( to )
58
58
}
59
59
60
60
fn get_current_size ( object : ObjectReference ) -> usize {
@@ -78,12 +78,24 @@ impl ObjectModel<OpenJDK> for VMObjectModel {
78
78
unimplemented ! ( )
79
79
}
80
80
81
- fn object_start_ref ( object : ObjectReference ) -> Address {
82
- object. to_address ( )
81
+ #[ inline( always) ]
82
+ fn ref_to_object_start ( object : ObjectReference ) -> Address {
83
+ object. to_raw_address ( )
83
84
}
84
85
86
+ #[ inline( always) ]
85
87
fn ref_to_address ( object : ObjectReference ) -> Address {
86
- object. to_address ( )
88
+ object. to_raw_address ( )
89
+ }
90
+
91
+ #[ inline( always) ]
92
+ fn ref_to_header ( object : ObjectReference ) -> Address {
93
+ object. to_raw_address ( )
94
+ }
95
+
96
+ #[ inline( always) ]
97
+ fn address_to_ref ( address : Address ) -> ObjectReference {
98
+ ObjectReference :: from_raw_address ( address)
87
99
}
88
100
89
101
fn dump_object ( object : ObjectReference ) {
0 commit comments