RFR: 8316669: ImmutableOopMapSet destructor not called
Vladimir Kozlov
kvn at openjdk.org
Thu Sep 21 19:31:58 UTC 2023
On Thu, 21 Sep 2023 12:52:33 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
> Hi all,
>
> please review this addition to call the destructor of `ImmutableOopMapSet` before its memory is deleted. There is no functional problem as the destructor is empty, but it is surprising to free new'ed objects without calling its destructor.
>
> Testing: gha
>
> Thanks,
> Thomas
src/hotspot/share/code/codeBlob.cpp line 179:
> 177: if (_oop_maps != nullptr) {
> 178: _oop_maps->~ImmutableOopMapSet();
> 179: FREE_C_HEAP_ARRAY(unsigned char, _oop_maps);
Using FREE_C_HEAP_ARRAY here is concerning (even if it worked for years). CodeBlob should not know what `_oop_maps` is look like inside - he sees its type is `ImmutableOopMapSet*` and not an array.
Thank you for adding the destructor. It should free memory used by `_oop_maps`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15862#discussion_r1333512407
More information about the hotspot-compiler-dev
mailing list