RFR(s): JDK-8214687 Optimize Collections.nCopies().hashCode()
Tagir Valeev
amaembo at gmail.com
Thu Dec 13 05:33:44 UTC 2018
Hello, Zheka!
I'm not sure whether it's possible to commit a patch which is
partially contributed by another person. Probably you should submit it
separately? Also for complete patch a testcase would be necessary.
With best regards,
Tagir Valeev.
On Thu, Dec 13, 2018 at 11:48 AM Zheka Kozlov <orionllmain at gmail.com> wrote:
>
> OK, this is a fixed version:
>
> @Override
> public void forEach(Consumer<? super E> action) {
> Objects.requireNonNull(action);
> final int n = this.n;
> final E e = this.element;
> for (int i = 0; i < n; i++) {
> action.accept(e);
> }
> }
>
> Tagir, can you add this to your patch? I signed the OCA.
>
>
> ср, 12 дек. 2018 г. в 11:25, Martin Buchholz <martinrb at google.com>:
>>
>> I used to believe that, but apparently I was wrong.
>> https://openjdk.markmail.org/thread/rfqfultw35i2az45
>>
>> On Tue, Dec 11, 2018 at 8:14 PM Zheka Kozlov <orionllmain at gmail.com> wrote:
>>>
>>> Would be better to add @Stable to the fields instead? (`n` and `element` are final, so @Stable is OK here)
>>>
>>> ср, 12 дек. 2018 г. в 11:02, Martin Buchholz <martinrb at google.com>:
>>>>>
>>>>> In performance critical code, we don't trust hotspot to not reload final fields. Other forEach methods do this, e.g.
>>>>
>>>>
>>>> final Object[] es = queue;
>>>> for (int i = 0, n = size; i < n; i++)
>>>> action.accept((E) es[i]);
>>>>
More information about the core-libs-dev
mailing list