diff --git a/src/hotspot/share/gc/epsilon/epsilonHeap.cpp b/src/hotspot/share/gc/epsilon/epsilonHeap.cpp index 3907d904e2f..c44baa3cc04 100644 --- a/src/hotspot/share/gc/epsilon/epsilonHeap.cpp +++ b/src/hotspot/share/gc/epsilon/epsilonHeap.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2017, 2022, Red Hat, Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -124,14 +124,15 @@ HeapWord* EpsilonHeap::allocate_work(size_t size, bool verbose) { } // Expand and loop back if space is available + size_t size_in_bytes = size * HeapWordSize; size_t space_left = max_capacity() - capacity(); - size_t want_space = MAX2(size, EpsilonMinHeapExpand); + size_t want_space = MAX2(size_in_bytes, EpsilonMinHeapExpand); if (want_space < space_left) { // Enough space to expand in bulk: bool expand = _virtual_space.expand_by(want_space); assert(expand, "Should be able to expand"); - } else if (size < space_left) { + } else if (size_in_bytes < space_left) { // No space to expand in bulk, and this allocation is still possible, // take all the remaining space: bool expand = _virtual_space.expand_by(space_left);