On Tue, Jan 31, 2017 at 12:32 PM, Paul Sandoz <paul.san...@oracle.com> wrote:
> > ConcurrentLinkedDeque > — > > 1427 if ((e = p.item) != null) > 1428 ((a != null) ? a : (a = new Object[n]))[i++] = e; > > This is awfully hard to read. Is it really worth it to save an extra line > or two? > You're right. Better style, better bytecode: Index: concurrent/ConcurrentLinkedDeque.java =================================================================== RCS file: /export/home/jsr166/jsr166/jsr166/src/main/java/util/concurrent/ConcurrentLinkedDeque.java,v retrieving revision 1.87 diff -u -U 1 -r1.87 ConcurrentLinkedDeque.java --- concurrent/ConcurrentLinkedDeque.java 29 Dec 2016 23:08:16 -0000 1.87 +++ concurrent/ConcurrentLinkedDeque.java 31 Jan 2017 22:13:02 -0000 @@ -1397,4 +1397,7 @@ final E e; - if ((e = p.item) != null) - ((a != null) ? a : (a = new Object[n]))[i++] = e; + if ((e = p.item) != null) { + if (a == null) + a = new Object[n]; + a[i++] = e; + } if (p == (p = q)) Index: concurrent/ConcurrentLinkedQueue.java =================================================================== RCS file: /export/home/jsr166/jsr166/jsr166/src/main/java/util/concurrent/ConcurrentLinkedQueue.java,v retrieving revision 1.156 diff -u -U 1 -r1.156 ConcurrentLinkedQueue.java --- concurrent/ConcurrentLinkedQueue.java 14 Jan 2017 06:50:52 -0000 1.156 +++ concurrent/ConcurrentLinkedQueue.java 31 Jan 2017 22:13:03 -0000 @@ -843,4 +843,7 @@ final E e; - if ((e = p.item) != null) - ((a != null) ? a : (a = new Object[n]))[i++] = e; + if ((e = p.item) != null) { + if (a == null) + a = new Object[n]; + a[i++] = e; + } if (p == (p = q)) Index: concurrent/LinkedTransferQueue.java =================================================================== RCS file: /export/home/jsr166/jsr166/jsr166/src/main/java/util/concurrent/LinkedTransferQueue.java,v retrieving revision 1.153 diff -u -U 1 -r1.153 LinkedTransferQueue.java --- concurrent/LinkedTransferQueue.java 18 Jan 2017 23:40:58 -0000 1.153 +++ concurrent/LinkedTransferQueue.java 31 Jan 2017 22:13:03 -0000 @@ -1034,4 +1034,7 @@ if (p.isData) { - if (item != null) - ((a != null) ? a : (a = new Object[n]))[i++] = item; + if (item != null) { + if (a == null) + a = new Object[n]; + a[i++] = item; + } } else if (item == null) {