< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/DeletedArrayFilter.java

Print this page




  59         }
  60 
  61         return value;
  62     }
  63 
  64     @Override
  65     public Object asArrayOfType(final Class<?> componentType) {
  66         final Object value = super.asArrayOfType(componentType);
  67         final Object undefValue = convertUndefinedValue(componentType);
  68         final int l = Array.getLength(value);
  69         for (int i = 0; i < l; i++) {
  70             if (deleted.isSet(i)) {
  71                 Array.set(value, i, undefValue);
  72             }
  73         }
  74 
  75         return value;
  76     }
  77 
  78     @Override
  79     public void shiftLeft(final int by) {
  80         super.shiftLeft(by);
  81         deleted.shiftLeft(by, length());

  82     }
  83 
  84     @Override
  85     public ArrayData shiftRight(final int by) {
  86         super.shiftRight(by);
  87         deleted.shiftRight(by, length());
  88         return this;
  89     }
  90 
  91     @Override
  92     public ArrayData ensure(final long safeIndex) {
  93         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
  94             return new SparseArrayData(this, safeIndex + 1);
  95         }
  96 
  97         super.ensure(safeIndex);
  98         deleted.resize(length());
  99 
 100         return this;
 101     }




  59         }
  60 
  61         return value;
  62     }
  63 
  64     @Override
  65     public Object asArrayOfType(final Class<?> componentType) {
  66         final Object value = super.asArrayOfType(componentType);
  67         final Object undefValue = convertUndefinedValue(componentType);
  68         final int l = Array.getLength(value);
  69         for (int i = 0; i < l; i++) {
  70             if (deleted.isSet(i)) {
  71                 Array.set(value, i, undefValue);
  72             }
  73         }
  74 
  75         return value;
  76     }
  77 
  78     @Override
  79     public ArrayData shiftLeft(final int by) {
  80         super.shiftLeft(by);
  81         deleted.shiftLeft(by, length());
  82         return this;
  83     }
  84 
  85     @Override
  86     public ArrayData shiftRight(final int by) {
  87         super.shiftRight(by);
  88         deleted.shiftRight(by, length());
  89         return this;
  90     }
  91 
  92     @Override
  93     public ArrayData ensure(final long safeIndex) {
  94         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
  95             return new SparseArrayData(this, safeIndex + 1);
  96         }
  97 
  98         super.ensure(safeIndex);
  99         deleted.resize(length());
 100 
 101         return this;
 102     }


< prev index next >