RFR: 8010992: Remove calls to global ::operator new[] and new

Coleen Phillimore coleen.phillimore at oracle.com
Fri Apr 12 11:00:13 PDT 2013


Hi Yomin,
Do you have a new webrev?
Thanks,
Coleen

On 4/12/2013 1:36 PM, Yumin Qi wrote:
> Thanks, Zhenyu
>
> On 4/12/2013 7:31 AM, Zhengyu Gu wrote:
>>
>> altHashing.cpp
>>   - You should NOT use mtTest, it is reserved for NMT testing. You 
>> probably can use mtOther here.
>>
> Changed code to use stack objs, so it will no longer exist.
>> allocation.cpp
>>   - Can you also add nothrow versions for operator new and operator 
>> new[]?
>>
> Yes, will.
>> allocation.inline.hpp
>>   #115 and #127 CHeapObj-new -> CHeapObj-new[]
>>   or operator new[] just calls operator new to reduce dup code?
>>
> Yes.
>> cardTableModRefBS.cpp
>>   #87 and #88, why set_start(NULL) are needed?
>>
> This is default constructor does, here just copy that code. Since we 
> did not call constructor by using this MACRO. It is a _ValueObj, 
> should not call new, but I think we can use NEW_C_HEAP_OBJ3, which 
> will call ctors.
>> carTableRS.cpp
>>   #70, why it is commented out? If so, you don't need the dstor
>>
>>
> See reply to David H.
>
>
> Thanks
> Yumin
>> -Zhengyu
>>
>>
>>
>>
>> On 4/12/2013 2:12 AM, Yumin Qi wrote:
>>> Hi,
>>>
>>>   Can I have your inputs for the fix?
>>>   webrev:
>>>
>>>  http://cr.openjdk.java.net/~minqi/8010992/webrev/ 
>>> <http://cr.openjdk.java.net/%7Eminqi/8010992/webrev/>
>>>
>>>   Bug:  8010992: Remove calls to global ::operator new[] and new
>>> https://jbs.oracle.com/bugs/browse/JDK-8010992
>>>
>>> Problem description:  Remove the usage of global operator ::new[] 
>>> and ::new. In hotspot debug build, disable the usage of global new[] 
>>> and new.  Hotspot does not throw c++ exceptions, but it cannot 
>>> prevent third party code to catch such exceptions.  By disabling use 
>>> of global operator new[] and new, we constrain the exception 
>>> disposal within hotspot. C++ classes (as same for structs) in 
>>> hotspot have to either extends from CHeapObj or ResourceObj unless 
>>> they are stack objects or values which have to be from StackObj or 
>>> _ValueObj respectively.  Or they have to implement their own 
>>> operator new[] or new.
>>>
>>> Thanks
>>> Yumin
>>>
>>>
>>
>



More information about the hotspot-runtime-dev mailing list