@@ -118,71 +118,53 @@ object Array extends FallbackArrayBuilding {
118118 */
119119 def apply [T ](xs : T * )(implicit ct : ClassTag [T ]): Array [T ] = {
120120 var i = 0
121+ val array = new Array [T ](xs.length)
121122 xs match {
122123 case vcwra : VCWrappedArray [T ] =>
123124 (vcwra.array: Object ) match {
124125 case vcia : VCIntArray [_] =>
125126 val oldUndArr = vcia.arr
126- val newArr = new Array [T ](vcia.length)
127- val newUndArr = newArr.asInstanceOf [VCIntArray [_]].arr
127+ val newUndArr = array.asInstanceOf [VCIntArray [_]].arr
128128 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
129- newArr
130129 case vcoa : VCObjectArray [_] =>
131130 val oldUndArr = vcoa.arr
132- val newArr = new Array [T ](vcoa.length)
133- val newUndArr = newArr.asInstanceOf [VCObjectArray [_]].arr
131+ val newUndArr = array.asInstanceOf [VCObjectArray [_]].arr
134132 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
135- newArr
136133 case vcba : VCByteArray [_] =>
137134 val oldUndArr = vcba.arr
138- val newArr = new Array [T ](vcba.length)
139- val newUndArr = newArr.asInstanceOf [VCByteArray [_]].arr
135+ val newUndArr = array.asInstanceOf [VCByteArray [_]].arr
140136 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
141- newArr
142137 case vcboola : VCBooleanArray [_] =>
143138 val oldUndArr = vcboola.arr
144- val newArr = new Array [T ](vcboola.length)
145- val newUndArr = newArr.asInstanceOf [VCBooleanArray [_]].arr
139+ val newUndArr = array.asInstanceOf [VCBooleanArray [_]].arr
146140 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
147- newArr
148141 case vcla : VCLongArray [_] =>
149142 val oldUndArr = vcla.arr
150- val newArr = new Array [T ](vcla.length)
151- val newUndArr = newArr.asInstanceOf [VCLongArray [_]].arr
143+ val newUndArr = array.asInstanceOf [VCLongArray [_]].arr
152144 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
153- newArr
154145 case vcfa : VCFloatArray [_] =>
155146 val oldUndArr = vcfa.arr
156- val newArr = new Array [T ](vcfa.length)
157- val newUndArr = newArr.asInstanceOf [VCFloatArray [_]].arr
147+ val newUndArr = array.asInstanceOf [VCFloatArray [_]].arr
158148 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
159- newArr
160149 case vcda : VCDoubleArray [_] =>
161150 val oldUndArr = vcda.arr
162- val newArr = new Array [T ](vcda.length)
163- val newUndArr = newArr.asInstanceOf [VCDoubleArray [_]].arr
151+ val newUndArr = array.asInstanceOf [VCDoubleArray [_]].arr
164152 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
165- newArr
166153 case vcca : VCCharArray [_] =>
167154 val oldUndArr = vcca.arr
168- val newArr = new Array [T ](vcca.length)
169- val newUndArr = newArr.asInstanceOf [VCCharArray [_]].arr
155+ val newUndArr = array.asInstanceOf [VCCharArray [_]].arr
170156 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
171- newArr
172157 case vcsa : VCShortArray [_] =>
173158 val oldUndArr = vcsa.arr
174- val newArr = new Array [T ](vcsa.length)
175- val newUndArr = newArr.asInstanceOf [VCShortArray [_]].arr
159+ val newUndArr = array.asInstanceOf [VCShortArray [_]].arr
176160 for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
177- newArr
178161 }
179162 case _ =>
180163 // Subject to a compiler optimization in Cleanup.
181164 // Array(e0, ..., en) is translated to { val a = new Array(3); a(i) = ei; a }
182- val array = new Array [T ](xs.length)
183165 for (x <- xs.iterator) { array(i) = x; i += 1 }
184- array
185166 }
167+ array
186168 }
187169
188170 /** Creates an array of `Boolean` objects */
0 commit comments