@@ -118,71 +118,53 @@ object Array extends FallbackArrayBuilding {
118
118
*/
119
119
def apply [T ](xs : T * )(implicit ct : ClassTag [T ]): Array [T ] = {
120
120
var i = 0
121
+ val array = new Array [T ](xs.length)
121
122
xs match {
122
123
case vcwra : VCWrappedArray [T ] =>
123
124
(vcwra.array: Object ) match {
124
125
case vcia : VCIntArray [_] =>
125
126
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
128
128
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
129
- newArr
130
129
case vcoa : VCObjectArray [_] =>
131
130
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
134
132
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
135
- newArr
136
133
case vcba : VCByteArray [_] =>
137
134
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
140
136
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
141
- newArr
142
137
case vcboola : VCBooleanArray [_] =>
143
138
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
146
140
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
147
- newArr
148
141
case vcla : VCLongArray [_] =>
149
142
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
152
144
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
153
- newArr
154
145
case vcfa : VCFloatArray [_] =>
155
146
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
158
148
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
159
- newArr
160
149
case vcda : VCDoubleArray [_] =>
161
150
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
164
152
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
165
- newArr
166
153
case vcca : VCCharArray [_] =>
167
154
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
170
156
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
171
- newArr
172
157
case vcsa : VCShortArray [_] =>
173
158
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
176
160
for (x <- oldUndArr.iterator) { newUndArr(i) = x; i += 1 }
177
- newArr
178
161
}
179
162
case _ =>
180
163
// Subject to a compiler optimization in Cleanup.
181
164
// Array(e0, ..., en) is translated to { val a = new Array(3); a(i) = ei; a }
182
- val array = new Array [T ](xs.length)
183
165
for (x <- xs.iterator) { array(i) = x; i += 1 }
184
- array
185
166
}
167
+ array
186
168
}
187
169
188
170
/** Creates an array of `Boolean` objects */
0 commit comments