259 * @return ArrayData
260 */
261 public final static ArrayData initialArray() {
262 return new IntArrayData();
263 }
264
265 /**
266 * Unwarranted thrower
267 *
268 * @param data array data
269 * @param programPoint program point
270 * @param index array index
271 */
272 protected static void throwUnwarranted(final ArrayData data, final int programPoint, final int index) {
273 throw new UnwarrantedOptimismException(data.getObject(index), programPoint);
274 }
275
276 /**
277 * Align an array size up to the nearest array chunk size
278 * @param size size required
279 * @return size given, always >= size
280 */
281 protected final static int alignUp(final int size) {
282 return size + CHUNK_SIZE - 1 & ~(CHUNK_SIZE - 1);
283 }
284
285 /**
286 * Factory method for unspecified array with given length - start as int array data
287 *
288 * @param length the initial length
289 * @return ArrayData
290 */
291 public static final ArrayData allocate(final int length) {
292 if (length == 0) {
293 return new IntArrayData();
294 } else if (length >= SparseArrayData.MAX_DENSE_LENGTH) {
295 return new SparseArrayData(EMPTY_ARRAY, length);
296 } else {
297 return new DeletedRangeArrayFilter(new IntArrayData(length), 0, length - 1);
298 }
299 }
|
259 * @return ArrayData
260 */
261 public final static ArrayData initialArray() {
262 return new IntArrayData();
263 }
264
265 /**
266 * Unwarranted thrower
267 *
268 * @param data array data
269 * @param programPoint program point
270 * @param index array index
271 */
272 protected static void throwUnwarranted(final ArrayData data, final int programPoint, final int index) {
273 throw new UnwarrantedOptimismException(data.getObject(index), programPoint);
274 }
275
276 /**
277 * Align an array size up to the nearest array chunk size
278 * @param size size required
279 * @return size given, always >= size
280 */
281 protected final static int alignUp(final int size) {
282 return size + CHUNK_SIZE - 1 & ~(CHUNK_SIZE - 1);
283 }
284
285 /**
286 * Factory method for unspecified array with given length - start as int array data
287 *
288 * @param length the initial length
289 * @return ArrayData
290 */
291 public static final ArrayData allocate(final int length) {
292 if (length == 0) {
293 return new IntArrayData();
294 } else if (length >= SparseArrayData.MAX_DENSE_LENGTH) {
295 return new SparseArrayData(EMPTY_ARRAY, length);
296 } else {
297 return new DeletedRangeArrayFilter(new IntArrayData(length), 0, length - 1);
298 }
299 }
|