ZGC: Remove usage of arrayOopDesc::max_array_length_in_bytes

Stefan Karlsson stefan.karlsson at oracle.com
Wed May 16 12:35:30 UTC 2018


Hi all,

The following UPSTREAM patch is incorrect and the function is weirdly named:
http://hg.openjdk.java.net/zgc/zgc/rev/32baead3cec8

Instead of fixing it I propose that we delete that patch and replace the 
single usage of max_array_length_in_bytes with:

diff --git a/src/hotspot/share/gc/z/zMark.cpp 
b/src/hotspot/share/gc/z/zMark.cpp
--- a/src/hotspot/share/gc/z/zMark.cpp
+++ b/src/hotspot/share/gc/z/zMark.cpp
@@ -194,7 +194,7 @@
  }

  void ZMark::follow_large_array(uintptr_t addr, size_t size, bool 
finalizable) {
-  assert(size <= arrayOopDesc::max_array_length_in_bytes(T_OBJECT), 
"Too large");
+  assert(size <= (size_t)arrayOopDesc::max_array_length(T_OBJECT) * 
oopSize, "Too large");
    assert(size > ZMarkPartialArrayMinSize, "Too small, should not be 
split");
    const uintptr_t start = addr;
    const uintptr_t end = start + size;


Thanks,
StefanK


More information about the zgc-dev mailing list