RFR(S): 8216426: Usage of array placement new may lead to memory corruption
Robbin Ehn
robbin.ehn at oracle.com
Tue Jan 15 09:26:00 UTC 2019
On 2019-01-15 10:15, Erik Österlund wrote:
> Hi,
>
> Perhaps an alternative approach is to make the Bucket a POD (make the private member public, and remove the
> constructor), and then simply memset the memory to zero.
Sorry, we have NMT tracking via NEW_C_HEAP_ARRAY(Bucket, _size, F);.
So yes, make it a POD and use memset.
/Robbin
>
> Thanks,
> /Erik
>
> On 2019-01-15 09:03, Robbin Ehn wrote:
>> Hi Martin,
>>
>> The Bucket should extend CHeapObj<F>, now that it could.
>> Otherwise looks good, thanks.
>>
>> Originally Bucket did this and I used memset, but gdb was very upset by this.
>> So I changed to array placement new, which meant I had to remove CHeapObj<F> if I remember correctly :)
>>
>> /Robbin
>>
>> On 2019-01-14 17:39, Doerr, Martin wrote:
>>> Hi,
>>>
>>> thanks for looking at this issue and especially for adding comments.
>>> Sounds like this issue should better get fixed although there are no known problems.
>>>
>>> Should we fix it by replacing the array placement new by normal placement new for each element?
>>> http://cr.openjdk.java.net/~mdoerr/8216426_array_placement_new/webrev.00/
>>>
>>> Best regards,
>>> Martin
>>>
>
More information about the hotspot-runtime-dev
mailing list