This update fixes the test bug which was initially filed as a Valhalla bug but 
then found to be NOT Valhalla specific.
The static variable `objectCount` is used for two different purposes:
 - to count current walked objects number
 - as a number to tag objects

This leads to mismatches in indexes calculations.
For instance the `ObjectFree` event callback decrements the `objectCount` 
number. Then the `objectCountMax` can be smaller than some of the actual 
indexes.
The fix does:
 - adds a fragment to force GC's with the JVMTI `ForceGarbageCollection` to 
make the failure well reproducible
 - split `objectCount` into: `objectCount` and `objectTagCount`
 - `objectTagCount` is used to set the object tags and value of the 
`objectCountMax`
 - a couple of the `ind` boundary checks are also corrected

Testing:
 - Executed the test locally: 
`jvmti/IterateOverReachableObjects/iterreachobj002`
 - TBD: Submit mach5 tiers 1-3 to be safe

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - 8384882: jvmti/IterateOverReachableObjects/iterreachobj002 fails with Not a 
valid malloc pointer

Changes: https://git.openjdk.org/jdk/pull/31585/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=31585&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8384882
  Stats: 28 lines in 1 file changed: 17 ins; 0 del; 11 mod
  Patch: https://git.openjdk.org/jdk/pull/31585.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/31585/head:pull/31585

PR: https://git.openjdk.org/jdk/pull/31585

Reply via email to