From 1f8ea8588ae5fdfeaeb7aa736460f7c49b8b45fa Mon Sep 17 00:00:00 2001 From: MBaesken Date: Tue, 4 Jun 2024 16:10:32 +0200 Subject: [PATCH 1/2] JDK-8331854 --- src/hotspot/share/utilities/copy.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/hotspot/share/utilities/copy.hpp b/src/hotspot/share/utilities/copy.hpp index 3c2756169ae3c..dd3907d9d7e5a 100644 --- a/src/hotspot/share/utilities/copy.hpp +++ b/src/hotspot/share/utilities/copy.hpp @@ -208,6 +208,7 @@ class Copy : AllStatic { // Copy word-aligned words from lower to higher addresses, not atomic on each word inline static void conjoint_words_to_higher(const HeapWord* from, HeapWord* to, size_t byte_count) { + if (byte_count == 0) return; // byte_count is in bytes to check its alignment assert_params_ok(from, to, HeapWordSize); assert_byte_count_ok(byte_count, HeapWordSize); From 70d09108d99c42fc5d76299522b39534276476e1 Mon Sep 17 00:00:00 2001 From: MBaesken Date: Wed, 5 Jun 2024 09:54:56 +0200 Subject: [PATCH 2/2] move check after assert --- src/hotspot/share/utilities/copy.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hotspot/share/utilities/copy.hpp b/src/hotspot/share/utilities/copy.hpp index dd3907d9d7e5a..5b2e6b8cd9162 100644 --- a/src/hotspot/share/utilities/copy.hpp +++ b/src/hotspot/share/utilities/copy.hpp @@ -208,10 +208,10 @@ class Copy : AllStatic { // Copy word-aligned words from lower to higher addresses, not atomic on each word inline static void conjoint_words_to_higher(const HeapWord* from, HeapWord* to, size_t byte_count) { - if (byte_count == 0) return; // byte_count is in bytes to check its alignment assert_params_ok(from, to, HeapWordSize); assert_byte_count_ok(byte_count, HeapWordSize); + if (byte_count == 0) return; size_t count = align_up(byte_count, HeapWordSize) >> LogHeapWordSize; assert(from <= to || to + count <= from, "do not overwrite source data");