RFR: 8296453: Simplify resource_area uses in ClassPathDirEntry::open_stream

Xin Liu xliu at openjdk.org
Mon Nov 7 17:22:32 UTC 2022


Currently it is correct, but there are two places we can improve it.

1. We should assert that current == Thread::current(). If it were not case, then we would intermix NEW_RESOURCE_ARRAY_IN_THREAD(current, char, path_len) and FREE_RESOURCE_ARRAY(char, path, path_len)!

2. We don't need to call FREE_RESOURCE_ARRAY(char, path, path_len) for path in its first exit. It won't release anything because buffer stands in its way.

The resource area is like this. `Afree(path, path_len)` won't reclaim the space.

|path | buffer |...|
                    ^hwm

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

Commit messages:
 - 8296453: Simplify resource_area uses in ClassPathDirEntry::open_stream

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

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


More information about the hotspot-runtime-dev mailing list