RFR: 8294308: Allow dynamically choosing the MEMFLAGS of a type without ResourceObj [v2]

Johan Sjölen jsjolen at openjdk.org
Sat Sep 24 09:53:25 UTC 2022


On Fri, 23 Sep 2022 19:53:56 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Johan Sjölen has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Try out Coleen's suggestion
>
> src/hotspot/share/memory/allocation.hpp line 219:
> 
>> 217: };
>> 218: 
>> 219: class DynCHeapObj {
> 
> I tried this and it seems to work:  If you make CHeapObj new operators take MEMFLAGS f = F, where F is the default  value, you could not have this class and make outputStream inherit from CHeapObj<mtInternal\> and the new calls will override mtInternal.  I guess the risk is that you get mtInternal if you forget the parameter to new.

Good idea! I implemented this instead.

> src/hotspot/share/opto/compile.cpp line 4413:
> 
>> 4411:     // print_inlining_init is actually called several times.
>> 4412:     print_inlining_stream_free();
>> 4413:     _print_inlining_stream = new (mtCompiler) stringStream();
> 
> These now need a delete (which is good because it doesn't need an explicit destructor call).

We'll wait and see how https://github.com/openjdk/jdk/pull/10396 turns out before merging this :-).

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

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


More information about the hotspot-dev mailing list