RFR: jsr166 jdk9 integration wave 14
Martin Buchholz
martinrb at google.com
Tue Jan 31 22:18:06 UTC 2017
On Tue, Jan 31, 2017 at 12:32 PM, Paul Sandoz <paul.sandoz at 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) {
More information about the core-libs-dev
mailing list