RFR: 8296453: Simplify resource_area uses in ClassPathDirEntry::open_stream [v2]
David Holmes
dholmes at openjdk.org
Fri Nov 11 03:47:44 UTC 2022
On Thu, 10 Nov 2022 08:39:53 GMT, Xin Liu <xliu at openjdk.org> wrote:
>> 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
>
> Xin Liu has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
>
> - Add API FREE_RESOURCE_ARRAY_IN_THREAD.
>
> Remove the assert at the begining because it is redundant.
> We also replace ResourceArea allocation/free with their IN_THREAD variants.
> - Merge branch 'master' into JDK-8296453
> - 8296453: Simplify resource_area uses in ClassPathDirEntry::open_stream
src/hotspot/share/classfile/classLoader.cpp line 245:
> 243:
> 244: ClassFileStream* ClassPathDirEntry::open_stream(JavaThread* current, const char* name) {
> 245: // current is Thread::current().
This is unnecessary
-------------
PR: https://git.openjdk.org/jdk/pull/11024
More information about the hotspot-runtime-dev
mailing list