First batch of changes to remove potentially dangerous calls to 
objArrayOopDesc::obj_at().
Changes are more extensive than intended. In most cases, code modifications 
consist in using a refArrayOop type instead of a objArrayOop type, because most 
of the arrays the JVM deals with for its own purpose are always reference 
arrays (because they are arrays of identity type elements). The patch also adds 
a new API allowing the VM to request the allocation of a reference array.
Code dealing with user provided arrays must be ready to handle exceptions when 
accessing objArrays.

This is a short term fix, fixing a few bugs, and trying to make the code more 
robust using the meta-data types. For the long term, a better solution is 
needed. Accesses to both arrays and fields are becoming more and more complex 
because of the introduction of flattening, multiple layouts, additional 
properties. Forcing enforcement at each access would be expensive and wasteful, 
as the JVM usually operates on well-known objects or arrays. But because of the 
increasing complexity, having a way to quickly check the validity of an access 
would help making the VM code more robust.

-------------

Commit messages:
 - Revert foreign methods signature changes
 - Foreign API and other fixes
 - CI fixes
 - More fixes in serviceability code
 - More fixes of array types
 - Initial push to enforce use of refArray by the JVM

Changes: https://git.openjdk.org/valhalla/pull/2033/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2033&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8375306
  Stats: 227 lines in 44 files changed: 62 ins; 23 del; 142 mod
  Patch: https://git.openjdk.org/valhalla/pull/2033.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2033/head:pull/2033

PR: https://git.openjdk.org/valhalla/pull/2033

Reply via email to