On Wed, 19 Apr 2023 11:00:32 GMT, Kim Barrett <kbarr...@openjdk.org> wrote:

>> Afshin Zafari has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   8305590: Remove nothrow exception specifications from operator new
>
> src/hotspot/share/prims/jvmtiRawMonitor.hpp line 114:
> 
>> 112: 
>> 113:   // Non-aborting operator new
>> 114:   void* operator new(size_t size, const std::nothrow_t&  
>> nothrow_constant) throw() {
> 
> Hm, now I'm wondering why isn't an `operator delete` to go with this?  Or are 
> these objects
> never deleted?  Otherwise I'd have thought we'd get the same mismatched 
> new/delete warning
> you encountered elsewhere.  If they're never supposed to be deleted, then 
> giving `operator delete`
> a deleted definition here seems appropriate, to prevent accidentally calling 
> the CHeapObj function.

This `operator new` just calls the `CHeapObj::operator new` with nothrow 
argument. So changing the caller will call the right one in `CHeapObj`. This 
object is deleted in  
https://github.com/openjdk/jdk/blob/c738c8ea3e9fda87abb03acb599a2433a344db09/src/hotspot/share/prims/jvmtiEnv.cpp#L3699
and this will call the `CHeapObj::operator delete` which is the right one. So 
this `operator new` is not needed since I changed the caller.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13498#discussion_r1171457189

Reply via email to