On Wed, 28 Sep 2022 13:45:53 GMT, Johan Sjölen <[email protected]> wrote:
>> Here's a suggested solution for the ticket mentioned and a use case for
>> outputStream. I'm not attached to the name.
>>
>> This saves space for all allocated outputStreams, which is nice. It also
>> makes the purpose of ResourceObj more clear ("please handle the life cycle
>> for me"), reducing the need for it.
>>
>> Thank you for considering it.
>
> Johan Sjölen has updated the pull request with a new target base due to a
> merge or a rebase. The pull request now contains six commits:
>
> - Introduce new, invalid, memory flag
> - delete _print_inlining_stream
> - Merge remote-tracking branch 'origin/master' into dyn-cheapobj
> - Avoid leaking predString
> - Try out Coleen's suggestion
> - DynCHeapObj
Changes requested by coleenp (Reviewer).
src/hotspot/share/opto/compile.hpp line 1064:
> 1062: delete _print_inlining_stream;
> 1063: };
> 1064:
compile.cpp has print_inlining_stream_free() calls which will leak the
stringStream now if called. I think this function needs to be removed and it
should call the reset function to reinitialize the stream.
There should be compiler tests that will fail if print_inlining_stream_free()
is called with a null _print_inlining_stream pointer (I think the delete should
fail (?) with null)
src/hotspot/share/utilities/ostream.hpp line 45:
> 43: // This allows for redirection via -XX:+DisplayVMOutputToStdout and
> 44: // -XX:+DisplayVMOutputToStderr
> 45: class outputStream : public CHeapObj<mtInternal> {
Were you going to change this to mtInvalid to require all components to pass
the appropriate mtComponent flag? People might bikeshed on the name mtInvalid
- it could also be mtOverride or mtDynamic. In any case, this is a nice
improvement.
-------------
PR: https://git.openjdk.org/jdk/pull/10412