Skip to content

Commit f54f871

Browse files
committed
runtime/native: fix argument order in Unsafe#putReferenceVolatile
1 parent 87a45f1 commit f54f871

File tree

1 file changed

+4
-17
lines changed
  • runtime/src/native/jdk/internal/misc

1 file changed

+4
-17
lines changed

runtime/src/native/jdk/internal/misc/Unsafe.rs

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,7 @@ where
6363
}
6464

6565
let offset = self.offset;
66-
unsafe {
67-
let ptr = self.object.get_raw::<T>(offset as usize) as *const T::Counterpart;
68-
(&*ptr).load(Ordering::Acquire)
69-
}
66+
unsafe { self.object.atomic_get::<T>(offset as usize) }
7067
}
7168

7269
unsafe fn put(&self, value: T) {
@@ -357,7 +354,7 @@ pub fn putReferenceVolatile(
357354
offset: jlong,
358355
value: Reference, // java.lang.Object
359356
) {
360-
unsafe { object.atomic_store::<usize>(offset as usize, value.raw_tagged() as usize) }
357+
unsafe { object.atomic_store::<usize>(value.raw_tagged() as usize, offset as usize) }
361358
}
362359

363360
/// Creates the many `{get, put}Ty` and `{get, put}TyVolatile` methods
@@ -488,18 +485,8 @@ pub fn copyMemory0(
488485
let src_base = src_base.extract_primitive_array();
489486
let dest_base = dest_base.extract_primitive_array();
490487

491-
let src_base_element_size = src_base.scale();
492-
let dest_base_element_size = dest_base.scale();
493-
494-
let src_base_offset = (src_offset as usize) * src_base_element_size;
495-
let dest_base_offset = (dest_offset as usize) * dest_base_element_size;
496-
497-
unsafe {
498-
let src_base_ptr = src_base.field_base().add(src_base_offset);
499-
let dest_base_ptr = dest_base.field_base().add(dest_base_offset);
500-
src_base_ptr.copy_to(dest_base_ptr, size * src_base_element_size);
501-
return;
502-
}
488+
unsafe { src_base.copy_into(src_offset as usize, &dest_base, dest_offset as usize, size) }
489+
return;
503490
}
504491

505492
todo!()

0 commit comments

Comments
 (0)