From a5090a34f55b9c13775844b9b70e8bc41e2aab03 Mon Sep 17 00:00:00 2001 From: aph Date: Tue, 27 Apr 2010 17:28:08 +0000 Subject: [PATCH] 2010-04-27 Andrew Haley * java/util/concurrent/CopyOnWriteArrayList.java: Fix for empty list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158790 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/classpath/ChangeLog | 5 +++++ .../util/concurrent/CopyOnWriteArrayList.java | 7 ++++++- .../concurrent/CopyOnWriteArrayList$1.class | Bin 2314 -> 2314 bytes .../concurrent/CopyOnWriteArrayList$2.class | Bin 1350 -> 1350 bytes .../concurrent/CopyOnWriteArrayList$3.class | Bin 2115 -> 2115 bytes ...OnWriteArrayList$RandomAccessSubList.class | Bin 1081 -> 1081 bytes .../CopyOnWriteArrayList$SubList.class | Bin 4878 -> 4878 bytes .../concurrent/CopyOnWriteArrayList.class | Bin 11229 -> 11264 bytes 8 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index f98d1c95b1e8..1db1158ff9a3 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -1,3 +1,8 @@ +2010-04-27 Andrew Haley + + * java/util/concurrent/CopyOnWriteArrayList.java: Fix for empty + list. + 2010-04-27 Andrew Haley * gnu/javax/print/ipp/IppResponse.java (parseAttributes): Handle diff --git a/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java b/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java index 6e4fb9a8ac91..020718292691 100644 --- a/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java +++ b/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java @@ -452,7 +452,12 @@ public class CopyOnWriteArrayList public synchronized boolean remove(Object element) { E[] snapshot = this.data; - E[] newData = (E[]) new Object[snapshot.length - 1]; + int len = snapshot.length; + + if (len == 0) + return false; + + E[] newData = (E[]) new Object[len - 1]; // search the element to remove while filling the backup array // this way we can run this method in O(n) diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class index 2dba6818fd6a03953ff6ec07e3f7265bef82587f..a8f5b0acb70ed7c46066f234568cad84935dab23 100644 GIT binary patch delta 107 zc-rd{>Jr+pn3eY`11HOM1}>Hx3{osNCvRZ&WPCFD7poKFhsm~VnY{lP_*nikh_Ny- zD6le4-prQ7%g?~hD!{Jr+pn3eYe11HNR1}>J%3{ostCU0Q%WV}E57poKF>&doknY=$4_*i~1h_U=; zP+<8pc{5uQFBbzlD>nl_D-VMtEAM0_c27o$$vHq$dGa=PM@FN`KY(nn$tyVYCl_*< JF~$K|NdTVC9x(s_ diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class index 03ab92a5ec1c40913c7650053f31eb9c9de6a35f..2ac9719071063f4612865ce253ed391511283cfb 100644 GIT binary patch delta 40 wc-lM0b&P9+3Jd2K22Q4L41!GGC+o7fGya}j%Hq$&%rN;Fiz6fJWDZt400NZ@Y5)KL delta 40 wc-lM0b&P9+3Jd3Z22Q4r41!FbChM}eGk%*~%Hq$&^n3C#7Dq;g$sDY901G<|O8@`> diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class index 1f2e00af9baf1856c0ec34abd2c29e2248bc2353..c20c1fecf979a6c6306ed089d581fc5d6f392aae 100644 GIT binary patch delta 99 zc-lKGa9Ci2C@ZHf11GaSgCMiPWI0w(Mw7`e+4Uz+XEmA3$Hp`HI;%OO!(@K8curRa zc4jvQerAu!<{9 delta 99 zc-lKGa9Ci2C@ZH111GZdA)F2j z?97e~{LIdi%h~K0Jtl8si|6zOiunP>0w&9`+cAbtj%9b89K+5tc@>bC2s9@O0Fvz( AGXMYp diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class index 83fd284ec57228fa27faa131df244e7903382687..df5d0783cd3f6e7adf05ec0c6d0de11297640179 100644 GIT binary patch delta 17 Yc-q^^v6ExNK4#V$26ook$%mQC05*9A%>V!Z delta 17 Yc-q^^v6ExNK4#W(26onp$%mQC05&rP!vFvP diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class index 572a880ad34c81e7cc08c820a41382ddc35509ef..1265019707288804f991f99b39a122bedd389b33 100644 GIT binary patch delta 360 zc-jrjyGw#m9LDiS&I9p!e_zp3FltDO6fKE@D1yXtj=)KbE<}@?WE73j;Bp4(LeUgO zLo~cpYxl;Y%haUx2V_B8zv;m9{rpZfR*jw3jo>w?Zegf9nCc!O^?;~))PKf?@d~ec zljU7+IxA)!Zq<xkzpoRF)e{F8#8{pesCy&RCsgl>3j zGb1%CbwX-RYDS-U52FQHi?YthI*WGBqlXJfvw&eP>XPpwS{AV^q9S5N#Hxrj5$hOa zS!ew>oi!0#BDO{BppCoe=AMXsjPd~Etm(LUWZ0t45umL<%q7Q_&RKKD6Ub*6e9^X* F{|AC*Obq}4 delta 360 zc-jri&nv@m9LMpOKJPW3eYfxS`T7y7iGwvZHaSpYek^g8+9FMyoV5J*56EGMef)^r zMGi)-IFKJZk{@@!;%Xe#!u#~D*YojC`_ulzcUf@`5*Lu-5=va5Qe49)^7==v$a|RL zftN?U>R3|GaEcdhuL$vth&R1&gmugqR-ar7T)wyzxO{V&H$@S4@e4!z!4gFscAmD_ zU?)4=R0=OSP)|-o$c1(?(aE=)JQyH_A+iuB8YpddWdgj#AwkRtpU z&>yaxigNAY+RHV@HL4HHU0;IN5ne}m9YYNz(Lm#9r35-?LQlI-d?^+)EM{5Eu~=ZS z$YL37l+yj4d|igc8jE!n8>pg91Za!JHo9mBeU#B5wI{Qzj!{Ng{iLQ!&h(%)DQ`e@ L3rTl6XT|>kZ6r>4 diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class index 0e7bd0f5aee8e5df8ffeefad416d36fad3471e43..97d63d83b3f3b3325a29099aca211ed91d6361b8 100644 GIT binary patch delta 2179 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 aH7UL=cnrh8bDzr#l2rnua7knm_WuL;!p`IX -- 2.47.2