hg: lambda/lambda/jdk: - ensure null values are retained
Paul Sandoz
paul.sandoz at oracle.com
Wed Dec 5 01:44:46 PST 2012
On Dec 4, 2012, at 3:12 PM, Remi Forax <forax at univ-mlv.fr> wrote:
> On 12/04/2012 03:00 PM, Peter Levart wrote:
>> Hi Remi, Paul,
>>
>> What about vice-versa:
>
> Hi Peter,
> good idea !
+1
Paul.
> we still need a if (t==null) in accept() and not use Objects.equals
> because we want the VM to profile the null in accept() and not in
> Objects.equals().
>
> Rémi
>
>>
>> Like this:
>>
>> private static final Object NONE = new Object();
>> ...
>>
>> return new Sink.ChainedReference<T>(sink) {
>> private Object lastSeen;
>>
>> @Override
>> public void begin(long size) {
>> lastSeen = NONE; // not needed if end() is
>> called in a finally ?
>> downstream.begin(-1);
>> }
>>
>> @Override
>> public void end() {
>> lastSeen = NONE;
>> downstream.end();
>> }
>>
>> @Override
>> public void accept(T t) {
>> if (!Objects.equals(t, lastSeen)) {
>> lastSeen = t;
>> downstream.accept(t);
>> }
>> }
>> };
More information about the lambda-dev
mailing list