nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/NoTypeArrayData.java
changeset 26886 18c744ab4df2
parent 25865 d38d876f1654
equal deleted inserted replaced
26786:f0c5e4b732da 26886:18c744ab4df2
    56         return Array.newInstance(componentType, 0);
    56         return Array.newInstance(componentType, 0);
    57     }
    57     }
    58 
    58 
    59     @Override
    59     @Override
    60     public ArrayData convert(final Class<?> type) {
    60     public ArrayData convert(final Class<?> type) {
    61         final long length = length();
    61         final long len = length;
    62         final ArrayData arrayData;
    62         final ArrayData arrayData;
    63         if (type == Long.class) {
    63         if (type == Long.class) {
    64             arrayData = new LongArrayData(new long[ArrayData.nextSize((int)length)], (int)length);
    64             arrayData = new LongArrayData(new long[ArrayData.nextSize((int)len)], (int)len);
    65         } else if (type == Double.class) {
    65         } else if (type == Double.class) {
    66             arrayData = new NumberArrayData(new double[ArrayData.nextSize((int)length)], (int)length);
    66             arrayData = new NumberArrayData(new double[ArrayData.nextSize((int)len)], (int)len);
    67         } else if (type == Integer.class) {
    67         } else if (type == Integer.class) {
    68             arrayData = new IntArrayData(new int[ArrayData.nextSize((int)length)], (int)length);
    68             arrayData = new IntArrayData(new int[ArrayData.nextSize((int)len)], (int)len);
    69         } else {
    69         } else {
    70             assert !type.isPrimitive();
    70             assert !type.isPrimitive();
    71             arrayData = new ObjectArrayData(new Object[ArrayData.nextSize((int)length)], (int)length);
    71             arrayData = new ObjectArrayData(new Object[ArrayData.nextSize((int)len)], (int)len);
    72         }
    72         }
    73         return length == 0 ? arrayData : new DeletedRangeArrayFilter(arrayData, 0, length - 1);
    73         return length == 0 ? arrayData : new DeletedRangeArrayFilter(arrayData, 0, len - 1);
    74     }
    74     }
    75 
    75 
    76     @Override
    76     @Override
    77     public void shiftLeft(final int by) {
    77     public void shiftLeft(final int by) {
    78         //empty
    78         //empty
    88         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
    88         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH) {
    89             return new SparseArrayData(this, safeIndex + 1);
    89             return new SparseArrayData(this, safeIndex + 1);
    90         }
    90         }
    91 
    91 
    92         // Don't trample the shared EMPTY_ARRAY.
    92         // Don't trample the shared EMPTY_ARRAY.
    93         if (length() == 0) {
    93         if (length == 0) {
    94             return new NoTypeArrayData(Math.max(safeIndex + 1, length()));
    94             return new NoTypeArrayData(Math.max(safeIndex + 1, length));
    95         }
    95         }
    96 
    96 
    97         setLength(Math.max(safeIndex + 1, length()));
    97         setLength(Math.max(safeIndex + 1, length));
    98         return this;
    98         return this;
    99     }
    99     }
   100 
   100 
   101     @Override
   101     @Override
   102     public ArrayData shrink(final long newLength) {
   102     public ArrayData shrink(final long newLength) {