< prev index next >

src/jdk/nashorn/internal/runtime/arrays/IntArrayData.java

Print this page




 159     private NumberArrayData convertToDouble() {
 160         return new NumberArrayData(toDoubleArray(), (int)length());
 161     }
 162 
 163     private ObjectArrayData convertToObject() {
 164         return new ObjectArrayData(toObjectArray(false), (int)length());
 165     }
 166 
 167     @Override
 168     public ArrayData convert(final Class<?> type) {
 169         if (type == Integer.class || type == Byte.class || type == Short.class) {
 170             return this;
 171         } else if (type == Double.class || type == Float.class) {
 172             return convertToDouble();
 173         } else {
 174             return convertToObject();
 175         }
 176     }
 177 
 178     @Override
 179     public void shiftLeft(final int by) {



 180         System.arraycopy(array, by, array, 0, array.length - by);
 181     }




 182 
 183     @Override
 184     public ArrayData shiftRight(final int by) {
 185         final ArrayData newData = ensure(by + length() - 1);
 186         if (newData != this) {
 187             newData.shiftRight(by);
 188             return newData;
 189         }
 190         System.arraycopy(array, 0, array, by, array.length - by);
 191 
 192         return this;
 193     }
 194 
 195     @Override
 196     public ArrayData ensure(final long safeIndex) {
 197         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
 198             return new SparseArrayData(this, safeIndex + 1);
 199         }
 200         final int alen = array.length;
 201         if (safeIndex >= alen) {




 159     private NumberArrayData convertToDouble() {
 160         return new NumberArrayData(toDoubleArray(), (int)length());
 161     }
 162 
 163     private ObjectArrayData convertToObject() {
 164         return new ObjectArrayData(toObjectArray(false), (int)length());
 165     }
 166 
 167     @Override
 168     public ArrayData convert(final Class<?> type) {
 169         if (type == Integer.class || type == Byte.class || type == Short.class) {
 170             return this;
 171         } else if (type == Double.class || type == Float.class) {
 172             return convertToDouble();
 173         } else {
 174             return convertToObject();
 175         }
 176     }
 177 
 178     @Override
 179     public ArrayData shiftLeft(final int by) {
 180         if (by >= length()) {
 181             shrink(0);
 182         } else {
 183             System.arraycopy(array, by, array, 0, array.length - by);
 184         }
 185         setLength(Math.max(0, length() - by));
 186 
 187         return this;
 188     }
 189 
 190     @Override
 191     public ArrayData shiftRight(final int by) {
 192         final ArrayData newData = ensure(by + length() - 1);
 193         if (newData != this) {
 194             newData.shiftRight(by);
 195             return newData;
 196         }
 197         System.arraycopy(array, 0, array, by, array.length - by);
 198 
 199         return this;
 200     }
 201 
 202     @Override
 203     public ArrayData ensure(final long safeIndex) {
 204         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
 205             return new SparseArrayData(this, safeIndex + 1);
 206         }
 207         final int alen = array.length;
 208         if (safeIndex >= alen) {


< prev index next >